[dpdk-dev] [PATCH V5 2/2] ethdev: change data type in TC rxq and TC txq

Ferruh Yigit ferruh.yigit at intel.com
Mon Sep 28 11:04:41 CEST 2020


On 9/27/2020 4:16 AM, Min Hu (Connor) wrote:
> From: Huisong Li <lihuisong at huawei.com>
> 
> Currently, base and nb_queue in the tc_rxq and tc_txq information
> of queue and TC mapping on both TX and RX paths are uint8_t.
> However, these data will be truncated when queue number under a TC
> is greater than 256. So it is necessary for base and nb_queue to
> change from uint8_t to uint16_t.
> 
> Fixes: 01eb53eefeb40e8 ("ethdev: rename folder to library name")
> 
> Signed-off-by: Huisong Li <lihuisong at huawei.com>
> Signed-off-by: Min Hu (Connor) <humin29 at huawei.com>
> Reviewed-by: Wei Hu (Xavier) <xavier.huwei at huawei.com>
> Reviewed-by: Dongdong Liu <liudongdong3 at huawei.com>
> ---
> V4 -> V5:
> add release notes updated.
> 
> ---
>   doc/guides/rel_notes/release_20_11.rst | 5 +++++
>   lib/librte_ethdev/rte_ethdev.h         | 8 ++++----
>   2 files changed, 9 insertions(+), 4 deletions(-)
> 
> diff --git a/doc/guides/rel_notes/release_20_11.rst b/doc/guides/rel_notes/release_20_11.rst
> index 1ef6f0e..ad14fd7 100644
> --- a/doc/guides/rel_notes/release_20_11.rst
> +++ b/doc/guides/rel_notes/release_20_11.rst
> @@ -183,6 +183,11 @@ API Changes
>     function will be changed from ``uint8_t`` to ``uint16_t``, which supports for
>     using 256 or more than 256 queues and displaying all statistics of rx/tx queue.
>   
> +* ethdev: Modified field type of base and nb_queue in struct
> +  ``rte_eth_dcb_tc_queue_mapping`` from ``uint8_t`` to ``uint16_t``.
> +  As the data of uint8_t will be truncated when queue number under
> +  a TC is greater than 256.
> +
>   
>   ABI Changes
>   -----------
> diff --git a/lib/librte_ethdev/rte_ethdev.h b/lib/librte_ethdev/rte_ethdev.h
> index ff3a616..2270460 100644
> --- a/lib/librte_ethdev/rte_ethdev.h
> +++ b/lib/librte_ethdev/rte_ethdev.h
> @@ -1522,13 +1522,13 @@ struct rte_eth_xstat_name {
>   struct rte_eth_dcb_tc_queue_mapping {
>   	/** rx queues assigned to tc per Pool */
>   	struct {
> -		uint8_t base;
> -		uint8_t nb_queue;
> +		uint16_t base;
> +		uint16_t nb_queue;
>   	} tc_rxq[ETH_MAX_VMDQ_POOL][ETH_DCB_NUM_TCS];
>   	/** rx queues assigned to tc per Pool */
>   	struct {
> -		uint8_t base;
> -		uint8_t nb_queue;
> +		uint16_t base;
> +		uint16_t nb_queue;
>   	} tc_txq[ETH_MAX_VMDQ_POOL][ETH_DCB_NUM_TCS];
>   };
>   
> 

cc'ed tech-board,

The patch breaks the ethdev ABI without a deprecation notice from previous 
release(s).

It is increasing the storage size of the fields to support more than 255 queues.

Since the ethdev library already heavily breaks the ABI this release, I am for 
getting this patch, instead of waiting for one more year for the update.

Can you please review the patch, is there any objection to proceed with it?


More information about the dev mailing list