[dpdk-dev] [PATCH 1/3] ethdev: add max burst size to device info

Matan Azrad matan at mellanox.com
Tue Dec 12 11:45:42 CET 2017


Hi Nikhil

> -----Original Message-----
> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Nikhil Agarwal
> Sent: Tuesday, December 12, 2017 12:05 PM
> To: dev at dpdk.org
> Cc: david.hunt at intel.com; nikhil.agarwal at nxp.com;
> hemant.agrawal at nxp.com; ferruh.yigit at intel.com
> Subject: [dpdk-dev] [PATCH 1/3] ethdev: add max burst size to device info
> 
> Currently, if the  rte_eth_rx_burst() function returns a value less than
> *nb_pkts*, the application will assume that no more packets are present.
> 
> Some of the hw queue based hardware can only support smaller burst for RX
> and TX and thus break the expectation of the rx_burst API.
>

Doesn't such like devices PMDs should try to retrieve multiple HW burst to adjust the asked received  packet number?
 
> This patch adds support to provide the maximum burst size that can be
> supported by a given PMD. The dev_info is being memset to '0' in
> rte_ethdev library. The value of '0' indicates that any value for burst size can
> be supported i.e. no change for existing PMDs.
> 
> The application can now use the lowest available max_burst_size value for
> rte_eth_rx_burst.
> 

If you are talking about performance, maybe the right field to expose is something like "perf_burst_size" or "preferred_burst_size".
I also suggest to expose different fields for RX and for TX.
Maybe the rte_eth_rx\tx_burst() descriptions should be updated. 

Thanks
Matan.

> Signed-off-by: Nikhil Agarwal <nikhil.agarwal at linaro.org>
> ---
>  lib/librte_ether/rte_ethdev.h | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/lib/librte_ether/rte_ethdev.h b/lib/librte_ether/rte_ethdev.h
> index 341c2d6..3ab6f02 100644
> --- a/lib/librte_ether/rte_ethdev.h
> +++ b/lib/librte_ether/rte_ethdev.h
> @@ -1047,6 +1047,7 @@ struct rte_eth_dev_info {
>  	/** Configured number of rx/tx queues */
>  	uint16_t nb_rx_queues; /**< Number of RX queues. */
>  	uint16_t nb_tx_queues; /**< Number of TX queues. */
> +	uint16_t max_burst_size; /**< MAX burst size, 0 for no limit. */
>  };
> 
>  /**
> --
> 2.7.4



More information about the dev mailing list