net/cnxk: fix to display extended stats

Message ID 20220701125110.512275-1-rkudurumalla@marvell.com (mailing list archive)
State Accepted, archived
Delegated to: Jerin Jacob
Headers
Series net/cnxk: fix to display extended stats |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK
ci/intel-Testing success Testing PASS
ci/github-robot: build success github build: passed
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-aarch64-unit-testing success Testing PASS
ci/iol-intel-Functional success Functional Testing PASS
ci/iol-aarch64-compile-testing success Testing PASS
ci/iol-x86_64-compile-testing success Testing PASS
ci/iol-x86_64-unit-testing success Testing PASS
ci/iol-abi-testing success Testing PASS

Commit Message

Rakesh Kudurumalla July 1, 2022, 12:51 p.m. UTC
  This fix replaces the usage of roc_nix_num_xstats_get()
which is compile time api with runtime api
roc_nix_xstats_names_get() resolving xstat count
difference for cn9k and cn10k while displaying xstats
for dpdk ports

Fixes: 825bd1d9d8e6 ("common/cnxk: update extra stats for inline device")

Signed-off-by: Rakesh Kudurumalla <rkudurumalla@marvell.com>
---
 drivers/net/cnxk/cnxk_stats.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
  

Comments

Jerin Jacob July 4, 2022, 12:59 p.m. UTC | #1
On Fri, Jul 1, 2022 at 6:21 PM Rakesh Kudurumalla
<rkudurumalla@marvell.com> wrote:
>
> This fix replaces the usage of roc_nix_num_xstats_get()
> which is compile time api with runtime api
> roc_nix_xstats_names_get() resolving xstat count
> difference for cn9k and cn10k while displaying xstats
> for dpdk ports
>
> Fixes: 825bd1d9d8e6 ("common/cnxk: update extra stats for inline device")
>
> Signed-off-by: Rakesh Kudurumalla <rkudurumalla@marvell.com>



Updated the git commit as follows and applied to
dpdk-next-net-mrvl/for-next-net. Thanks

    net/cnxk: fix to display extended stats

    This fix replaces the usage of roc_nix_num_xstats_get() which is compile
    time RoC API with runtime RoC  roc_nix_xstats_names_get() API resolving
    xstat count difference for cn9k and cn10k while displaying xstats
    for ethdev ports

    Fixes: 825bd1d9d8e6 ("common/cnxk: update extra stats for inline device")
    Cc: stable@dpdk.org

    Signed-off-by: Rakesh Kudurumalla <rkudurumalla@marvell.com>

> ---
>  drivers/net/cnxk/cnxk_stats.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/net/cnxk/cnxk_stats.c b/drivers/net/cnxk/cnxk_stats.c
> index 4b0deac05e..f2f2222c89 100644
> --- a/drivers/net/cnxk/cnxk_stats.c
> +++ b/drivers/net/cnxk/cnxk_stats.c
> @@ -172,7 +172,7 @@ cnxk_nix_xstats_get_names(struct rte_eth_dev *eth_dev,
>         struct roc_nix *nix = &dev->nix;
>         int roc_size, size, i, q;
>
> -       roc_size = roc_nix_num_xstats_get(nix);
> +       roc_size = roc_nix_xstats_names_get(nix, NULL, 0);
>         /* Per Queue statistics also returned as part of xstats */
>         size = roc_size + (dev->nb_rxq * CNXK_NB_RXQ_STATS) +
>                (dev->nb_txq * CNXK_NB_TXQ_STATS);
> @@ -232,7 +232,7 @@ cnxk_nix_xstats_get_names_by_id(struct rte_eth_dev *eth_dev,
>                                 unsigned int limit)
>  {
>         struct cnxk_eth_dev *dev = cnxk_eth_pmd_priv(eth_dev);
> -       uint32_t nix_cnt = roc_nix_num_xstats_get(&dev->nix);
> +       uint32_t nix_cnt = roc_nix_xstats_names_get(&dev->nix, NULL, 0);
>         uint32_t stat_cnt = nix_cnt + (dev->nb_rxq * CNXK_NB_RXQ_STATS) +
>                             (dev->nb_txq * CNXK_NB_TXQ_STATS);
>         struct rte_eth_xstat_name xnames[stat_cnt];
> @@ -265,7 +265,7 @@ cnxk_nix_xstats_get_by_id(struct rte_eth_dev *eth_dev, const uint64_t *ids,
>                           uint64_t *values, unsigned int n)
>  {
>         struct cnxk_eth_dev *dev = cnxk_eth_pmd_priv(eth_dev);
> -       uint32_t nix_cnt = roc_nix_num_xstats_get(&dev->nix);
> +       uint32_t nix_cnt = roc_nix_xstats_names_get(&dev->nix, NULL, 0);
>         uint32_t stat_cnt = nix_cnt + (dev->nb_rxq * CNXK_NB_RXQ_STATS) +
>                             (dev->nb_txq * CNXK_NB_TXQ_STATS);
>         struct rte_eth_xstat xstats[stat_cnt];
> --
> 2.25.1
>
  

Patch

diff --git a/drivers/net/cnxk/cnxk_stats.c b/drivers/net/cnxk/cnxk_stats.c
index 4b0deac05e..f2f2222c89 100644
--- a/drivers/net/cnxk/cnxk_stats.c
+++ b/drivers/net/cnxk/cnxk_stats.c
@@ -172,7 +172,7 @@  cnxk_nix_xstats_get_names(struct rte_eth_dev *eth_dev,
 	struct roc_nix *nix = &dev->nix;
 	int roc_size, size, i, q;
 
-	roc_size = roc_nix_num_xstats_get(nix);
+	roc_size = roc_nix_xstats_names_get(nix, NULL, 0);
 	/* Per Queue statistics also returned as part of xstats */
 	size = roc_size + (dev->nb_rxq * CNXK_NB_RXQ_STATS) +
 	       (dev->nb_txq * CNXK_NB_TXQ_STATS);
@@ -232,7 +232,7 @@  cnxk_nix_xstats_get_names_by_id(struct rte_eth_dev *eth_dev,
 				unsigned int limit)
 {
 	struct cnxk_eth_dev *dev = cnxk_eth_pmd_priv(eth_dev);
-	uint32_t nix_cnt = roc_nix_num_xstats_get(&dev->nix);
+	uint32_t nix_cnt = roc_nix_xstats_names_get(&dev->nix, NULL, 0);
 	uint32_t stat_cnt = nix_cnt + (dev->nb_rxq * CNXK_NB_RXQ_STATS) +
 			    (dev->nb_txq * CNXK_NB_TXQ_STATS);
 	struct rte_eth_xstat_name xnames[stat_cnt];
@@ -265,7 +265,7 @@  cnxk_nix_xstats_get_by_id(struct rte_eth_dev *eth_dev, const uint64_t *ids,
 			  uint64_t *values, unsigned int n)
 {
 	struct cnxk_eth_dev *dev = cnxk_eth_pmd_priv(eth_dev);
-	uint32_t nix_cnt = roc_nix_num_xstats_get(&dev->nix);
+	uint32_t nix_cnt = roc_nix_xstats_names_get(&dev->nix, NULL, 0);
 	uint32_t stat_cnt = nix_cnt + (dev->nb_rxq * CNXK_NB_RXQ_STATS) +
 			    (dev->nb_txq * CNXK_NB_TXQ_STATS);
 	struct rte_eth_xstat xstats[stat_cnt];