From: Stephen Hemminger <stephen@networkplumber.org>
To: dev@dpdk.org
Cc: Stephen Hemminger <stephen@networkplumber.org>,
Nithin Dabilpuram <ndabilpuram@marvell.com>,
Kiran Kumar K <kirankumark@marvell.com>,
Sunil Kumar Kori <skori@marvell.com>,
Satha Rao <skoteshwar@marvell.com>,
Harman Kalra <hkalra@marvell.com>
Subject: [PATCH v3 05/16] net/cnxk: remove queue stats mapping
Date: Thu, 13 Aug 2026 10:55:04 -0700 [thread overview]
Message-ID: <20260813180402.622784-6-stephen@networkplumber.org> (raw)
In-Reply-To: <20260813180402.622784-1-stephen@networkplumber.org>
The queue stats mapping feature has been deprecated since 25.11.
Remove support in this driver for stats map.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
drivers/net/cnxk/cnxk_ethdev.c | 1 -
drivers/net/cnxk/cnxk_ethdev.h | 6 ---
drivers/net/cnxk/cnxk_stats.c | 73 ++++++++++++++--------------------
3 files changed, 29 insertions(+), 51 deletions(-)
diff --git a/drivers/net/cnxk/cnxk_ethdev.c b/drivers/net/cnxk/cnxk_ethdev.c
index c41959173b..9a4da870cd 100644
--- a/drivers/net/cnxk/cnxk_ethdev.c
+++ b/drivers/net/cnxk/cnxk_ethdev.c
@@ -2103,7 +2103,6 @@ struct eth_dev_ops cnxk_eth_dev_ops = {
.rx_queue_intr_enable = cnxk_nix_rx_queue_intr_enable,
.rx_queue_intr_disable = cnxk_nix_rx_queue_intr_disable,
.pool_ops_supported = cnxk_nix_pool_ops_supported,
- .queue_stats_mapping_set = cnxk_nix_queue_stats_mapping,
.stats_get = cnxk_nix_stats_get,
.stats_reset = cnxk_nix_stats_reset,
.xstats_get = cnxk_nix_xstats_get,
diff --git a/drivers/net/cnxk/cnxk_ethdev.h b/drivers/net/cnxk/cnxk_ethdev.h
index fc66135c66..5dd74de577 100644
--- a/drivers/net/cnxk/cnxk_ethdev.h
+++ b/drivers/net/cnxk/cnxk_ethdev.h
@@ -423,10 +423,6 @@ struct cnxk_eth_dev {
/* LSO Tunnel format indices */
uint64_t lso_tun_fmt;
- /* Per queue statistics counters */
- uint32_t txq_stat_map[RTE_ETHDEV_QUEUE_STAT_CNTRS];
- uint32_t rxq_stat_map[RTE_ETHDEV_QUEUE_STAT_CNTRS];
-
/* Security data */
struct cnxk_eth_dev_sec_inb inb;
struct cnxk_eth_dev_sec_outb outb;
@@ -700,8 +696,6 @@ void cnxk_eth_dev_link_status_get_cb(struct roc_nix *nix,
void cnxk_eth_dev_q_err_cb(struct roc_nix *nix, void *data);
int cnxk_nix_link_info_configure(struct rte_eth_dev *eth_dev);
int cnxk_nix_link_update(struct rte_eth_dev *eth_dev, int wait_to_complete);
-int cnxk_nix_queue_stats_mapping(struct rte_eth_dev *dev, uint16_t queue_id,
- uint8_t stat_idx, uint8_t is_rx);
int cnxk_nix_stats_reset(struct rte_eth_dev *dev);
int cnxk_nix_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats,
struct eth_queue_stats *qstats);
diff --git a/drivers/net/cnxk/cnxk_stats.c b/drivers/net/cnxk/cnxk_stats.c
index 6c812bd732..469a18f93e 100644
--- a/drivers/net/cnxk/cnxk_stats.c
+++ b/drivers/net/cnxk/cnxk_stats.c
@@ -14,7 +14,7 @@ cnxk_nix_stats_get(struct rte_eth_dev *eth_dev, struct rte_eth_stats *stats,
struct cnxk_eth_dev *dev = cnxk_eth_pmd_priv(eth_dev);
struct roc_nix *nix = &dev->nix;
struct roc_nix_stats nix_stats;
- int rc = 0, i;
+ int rc, i;
rc = roc_nix_stats_get(nix, &nix_stats);
if (rc)
@@ -33,30 +33,34 @@ cnxk_nix_stats_get(struct rte_eth_dev *eth_dev, struct rte_eth_stats *stats,
stats->ibytes = nix_stats.rx_octs;
stats->ierrors = nix_stats.rx_err;
- if (qstats != NULL) {
- for (i = 0; i < RTE_ETHDEV_QUEUE_STAT_CNTRS; i++) {
- struct roc_nix_stats_queue qstats_data;
- uint16_t qidx;
-
- if (dev->txq_stat_map[i] & (1U << 31)) {
- qidx = dev->txq_stat_map[i] & 0xFFFF;
- rc = roc_nix_stats_queue_get(nix, qidx, 0, &qstats_data);
- if (rc)
- goto exit;
- qstats->q_opackets[i] = qstats_data.tx_pkts;
- qstats->q_obytes[i] = qstats_data.tx_octs;
- }
-
- if (dev->rxq_stat_map[i] & (1U << 31)) {
- qidx = dev->rxq_stat_map[i] & 0xFFFF;
- rc = roc_nix_stats_queue_get(nix, qidx, 1, &qstats_data);
- if (rc)
- goto exit;
- qstats->q_ipackets[i] = qstats_data.rx_pkts;
- qstats->q_ibytes[i] = qstats_data.rx_octs;
- qstats->q_errors[i] = qstats_data.rx_drop_pkts;
- }
- }
+ if (qstats == NULL)
+ goto exit;
+
+ for (i = 0; i < eth_dev->data->nb_tx_queues; i++) {
+ struct roc_nix_stats_queue qstats_data;
+
+ if (i >= RTE_ETHDEV_QUEUE_STAT_CNTRS)
+ break;
+
+ rc = roc_nix_stats_queue_get(nix, i, 0, &qstats_data);
+ if (rc)
+ goto exit;
+ qstats->q_opackets[i] = qstats_data.tx_pkts;
+ qstats->q_obytes[i] = qstats_data.tx_octs;
+ }
+
+ for (i = 0; i < eth_dev->data->nb_rx_queues; i++) {
+ struct roc_nix_stats_queue qstats_data;
+
+ if (i >= RTE_ETHDEV_QUEUE_STAT_CNTRS)
+ break;
+
+ rc = roc_nix_stats_queue_get(nix, i, 1, &qstats_data);
+ if (rc)
+ goto exit;
+ qstats->q_ipackets[i] = qstats_data.rx_pkts;
+ qstats->q_ibytes[i] = qstats_data.rx_octs;
+ qstats->q_errors[i] = qstats_data.rx_drop_pkts;
}
exit:
return rc;
@@ -70,25 +74,6 @@ cnxk_nix_stats_reset(struct rte_eth_dev *eth_dev)
return roc_nix_stats_reset(&dev->nix);
}
-int
-cnxk_nix_queue_stats_mapping(struct rte_eth_dev *eth_dev, uint16_t queue_id,
- uint8_t stat_idx, uint8_t is_rx)
-{
- struct cnxk_eth_dev *dev = cnxk_eth_pmd_priv(eth_dev);
-
- if (is_rx) {
- if (queue_id >= dev->nb_rxq)
- return -EINVAL;
- dev->rxq_stat_map[stat_idx] = ((1U << 31) | queue_id);
- } else {
- if (queue_id >= dev->nb_txq)
- return -EINVAL;
- dev->txq_stat_map[stat_idx] = ((1U << 31) | queue_id);
- }
-
- return 0;
-}
-
int
cnxk_nix_xstats_get(struct rte_eth_dev *eth_dev, struct rte_eth_xstat *xstats,
unsigned int n)
--
2.53.0
next prev parent reply other threads:[~2026-08-13 18:04 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-30 16:09 [RFC 0/7] Complete removal of queue stats mapping Stephen Hemminger
2026-05-30 16:09 ` [RFC 1/7] net/virtio: remove unused " Stephen Hemminger
2026-05-30 16:09 ` [RFC 2/7] net/enic: remove queue_stats_mapping ethdev_op Stephen Hemminger
2026-05-30 16:09 ` [RFC 3/7] net/cnxk: remove queue stats mapping Stephen Hemminger
2026-05-30 16:09 ` [RFC 4/7] net/e1000: " Stephen Hemminger
2026-05-30 16:10 ` [RFC 5/7] net/ixgbe: " Stephen Hemminger
2026-05-30 16:10 ` [RFC 6/7] net/txgbe: " Stephen Hemminger
2026-05-30 16:10 ` [RFC 7/7] ethdev: remove support for " Stephen Hemminger
2026-06-01 1:56 ` fengchengwen
2026-06-01 8:45 ` Andrew Rybchenko
2026-07-23 20:28 ` [PATCH v2 0/9] Complete removal of " Stephen Hemminger
2026-07-23 20:28 ` [PATCH v2 1/9] net/virtio: remove unused " Stephen Hemminger
2026-07-23 20:28 ` [PATCH v2 2/9] app/testpmd: remove unused function prototype Stephen Hemminger
2026-07-23 20:28 ` [PATCH v2 3/9] net/enic: remove unneeded ops initialization Stephen Hemminger
2026-07-24 1:52 ` Hyong Youb Kim (hyonkim)
2026-07-23 20:28 ` [PATCH v2 4/9] net/cnxk: remove queue stats mapping Stephen Hemminger
2026-07-24 7:26 ` David Marchand
2026-07-24 15:20 ` Stephen Hemminger
2026-07-23 20:28 ` [PATCH v2 5/9] net/e1000: " Stephen Hemminger
2026-07-24 7:31 ` David Marchand
2026-08-13 12:26 ` Bruce Richardson
2026-07-23 20:28 ` [PATCH v2 6/9] net/ixgbe: " Stephen Hemminger
2026-07-23 20:28 ` [PATCH v2 7/9] net/txgbe: " Stephen Hemminger
2026-07-23 20:28 ` [PATCH v2 8/9] net/sxe2: " Stephen Hemminger
2026-07-23 20:28 ` [PATCH v2 9/9] ethdev: remove support for " Stephen Hemminger
2026-07-24 7:39 ` [PATCH v2 0/9] Complete removal of " David Marchand
2026-07-24 7:42 ` David Marchand
2026-07-24 15:28 ` Stephen Hemminger
2026-08-13 17:54 ` [PATCH v3 00/16] remove stats mapping an RTE_ETHDEV_QUEUE_STAT_CNTRS Stephen Hemminger
2026-08-13 17:55 ` [PATCH v3 01/16] net/virtio: remove unused queue stats mapping Stephen Hemminger
2026-08-13 17:55 ` [PATCH v3 02/16] app/testpmd: remove leftover set qmap Stephen Hemminger
2026-08-13 17:55 ` [PATCH v3 03/16] net/enic: remove unneeded ops initialization Stephen Hemminger
2026-08-13 17:55 ` [PATCH v3 04/16] net/cnxk: fix Tx drops added to Rx queue errors Stephen Hemminger
2026-08-13 17:55 ` Stephen Hemminger [this message]
2026-08-13 17:55 ` [PATCH v3 06/16] net/e1000: remove queue stats mapping Stephen Hemminger
2026-08-13 17:55 ` [PATCH v3 07/16] net/ixgbe: " Stephen Hemminger
2026-08-13 17:55 ` [PATCH v3 08/16] net/txgbe: " Stephen Hemminger
2026-08-13 17:55 ` [PATCH v3 09/16] net/sxe2: fix null dereference in stats get Stephen Hemminger
2026-08-13 17:55 ` [PATCH v3 10/16] net/sxe2: remove queue stats mapping Stephen Hemminger
2026-08-13 17:55 ` [PATCH v3 11/16] ethdev: remove support for " Stephen Hemminger
2026-08-13 17:55 ` [PATCH v3 12/16] net/mvpp2: fix out of range Tx queue stats write Stephen Hemminger
2026-08-13 17:55 ` [PATCH v3 13/16] net/ntnic: fix Tx errors reported as Rx queue errors Stephen Hemminger
2026-08-13 17:55 ` [PATCH v3 14/16] net/xsc: fix Tx errors added to " Stephen Hemminger
2026-08-13 17:55 ` [PATCH v3 15/16] ethdev: remove queue stats counter limit Stephen Hemminger
2026-08-13 17:55 ` [PATCH v3 16/16] test/pmd_ring: test per-queue xstats Stephen Hemminger
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260813180402.622784-6-stephen@networkplumber.org \
--to=stephen@networkplumber.org \
--cc=dev@dpdk.org \
--cc=hkalra@marvell.com \
--cc=kirankumark@marvell.com \
--cc=ndabilpuram@marvell.com \
--cc=skori@marvell.com \
--cc=skoteshwar@marvell.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox