[dpdk-dev] [PATCH V2 1/4] ethdev: fix compiling errors for per-queue statistics

Ferruh Yigit ferruh.yigit at intel.com
Fri Sep 4 20:04:43 CEST 2020


On 9/4/2020 12:32 PM, Min Hu (Connor) wrote:
> From: Huisong Li <lihuisong at huawei.com>
> 
> Currently, only statistics of rx/tx queues with queue_id less than
> RTE_ETHDEV_QUEUE_STAT_CNTRS can be displayed. If there is a certain
> application scenario that it needs to use 256 or more than 256 queues
> and display all statistics of rx/tx queue. At this moment, we have to
> change the macro to be equaled to the queue number.
> 
> However, modifying the macro to be greater than 256 will trigger
> many errors and warnings from test-pmd, PMD driver and librte_ethdev
> during compiling dpdk project. But it is possible and permited that
> rx/tx queue number is greater than 256 and all statistics of rx/tx
> queue need to be displayed. In addition, the data type of rx/tx queue
> number in rte_eth_dev_configure API is 'uint16_t'. So It is unreasonable
> to use the 'uint8_t' type for variables that control which per-queue
> statistics can be displayed.
> 
> Fixes: ed30d9b691b2 ("app/testpmd: add stats per queue")
> Fixes: 09c7e63a71f9 ("net/memif: introduce memory interface PMD")
> Fixes: abf7275bbaa2 ("ixgbe: move to drivers/net/")
> Fixes: e6defdfddc3b ("net/igc: enable statistics")
> Fixes: 2265e4b4e84b ("net/octeontx2: add basic stats operation")
> Fixes: 6c3169a3dc04 ("virtio: move to drivers/net/")
> Cc: stable at dpdk.org
> 
> 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>
> ---
>  app/proc-info/main.c                | 2 +-
>  app/test-pmd/cmdline.c              | 2 +-
>  app/test-pmd/config.c               | 4 ++--
>  app/test-pmd/testpmd.c              | 2 +-
>  app/test-pmd/testpmd.h              | 5 +++--
>  drivers/net/igc/igc_ethdev.c        | 4 ++--
>  drivers/net/ixgbe/ixgbe_ethdev.c    | 4 ++--
>  drivers/net/memif/rte_eth_memif.c   | 2 +-
>  drivers/net/octeontx2/otx2_ethdev.h | 2 +-
>  drivers/net/octeontx2/otx2_stats.c  | 2 +-
>  drivers/net/virtio/virtio_ethdev.c  | 4 ++--
>  lib/librte_ethdev/rte_ethdev.c      | 6 +++---
>  lib/librte_ethdev/rte_ethdev.h      | 4 ++--
>  lib/librte_ethdev/rte_ethdev_core.h | 2 +-
>  14 files changed, 23 insertions(+), 22 deletions(-)

<...>

> diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
> index 0a6ed85..40b6b17 100644
> --- a/app/test-pmd/cmdline.c
> +++ b/app/test-pmd/cmdline.c
> @@ -8244,7 +8244,7 @@ struct cmd_set_qmap_result {
>  	cmdline_fixed_string_t what;
>  	portid_t port_id;
>  	uint16_t queue_id;
> -	uint8_t map_value;
> +	uint16_t map_value;
>  };

'cmd_setqmap_mapvalue' should be 'UINT16' instead of 'UINT8', or can't set
'map_value' >= 256 via "set stat_qmap ..." command.


More information about the dev mailing list