[dpdk-dev] [PATCH v3 1/4] ethdev: add a field for rxq info structure

Matan Azrad matan at nvidia.com
Wed Sep 2 09:19:16 CEST 2020


Hi Chengchang

From: Chengchang Tang
> Hi, Matan
> 
> On 2020/9/1 23:33, Matan Azrad wrote:
> >
> > Hi Chengchang
> >
> > Please see some question below.
> >
> > From: Chengchang Tang
> >> Add a field named rx_buf_size in rte_eth_rxq_info to indicate the
> >> buffer size used in receiving packets for HW.
> >>
> >> In this way, upper-layer users can get this information by calling
> >> rte_eth_rx_queue_info_get.
> >>
> >> Signed-off-by: Chengchang Tang <tangchengchang at huawei.com>
> >> Reviewed-by: Wei Hu (Xavier) <xavier.huwei at huawei.com>
> >> Acked-by: Andrew Rybchenko <arybchenko at solarflare.com>
> >> ---
> >>  lib/librte_ethdev/rte_ethdev.h | 2 ++
> >>  1 file changed, 2 insertions(+)
> >>
> >> diff --git a/lib/librte_ethdev/rte_ethdev.h
> >> b/lib/librte_ethdev/rte_ethdev.h index 70295d7..9fed5cb 100644
> >> --- a/lib/librte_ethdev/rte_ethdev.h
> >> +++ b/lib/librte_ethdev/rte_ethdev.h
> >> @@ -1420,6 +1420,8 @@ struct rte_eth_rxq_info {
> >>         struct rte_eth_rxconf conf; /**< queue config parameters. */
> >>         uint8_t scattered_rx;       /**< scattered packets RX supported. */
> >>         uint16_t nb_desc;           /**< configured number of RXDs. */
> >> +       /**< buffer size used for hardware when receive packets. */
> >> +       uint16_t rx_buf_size;
> >
> > Is it the maximum supported Rx buffer by the HW?
> > If yes, maybe max_rx_buf_size is better name?
> 
> No, it is the Rx buffer size currently used by HW.

Doesn't it defined by the user? Using Rx queue mem-pool mbuf room size?

And it may be different per Rx queue....

> IMHO, the structure rte_eth_rxq_info and associated query API are mainly
> used to query HW configurations at runtime or after queue is
> configured/setup. Therefore, the content of this structure should be the
> current HW configuration.

It looks me more like capabilities...
The one which define the current configuration is the user by the configuration APIs(after reading the capabilities).

I don't think we have here all the current configurations, so what is special in this one?


> > Maybe document that 0 means - no limitation by HW?
> 
> Yes, there is no need to fill this filed for HW that has no restrictions on it.
> I'll add it in v4.
> 
> > Must application read it in order to know if its datapath should handle
> multi-segment buffers?
> 
> I think it's more appropriate to use scattered_rx to determine if multi-
> segment buffers should be handled.
> 
> >
> > Maybe it will be good to force application to configure scatter when this
> field is valid and smaller than max_rx_pkt_len\max_lro.. (<= room size)...

Can you explain more what is the issue you came to solve?

> >
> >>  } __rte_cache_min_aligned;
> >>
> >>  /**
> 



More information about the dev mailing list