patch 'net/nbl: fix queue stats on restart' has been queued to stable release 25.11.1

Kevin Traynor ktraynor at redhat.com
Thu Mar 19 11:02:58 CET 2026


Hi,

FYI, your patch has been queued to stable release 25.11.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 03/23/26. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable/commit/0ff712b2305d69c982934047680072990a2d7f45

Thanks.

Kevin

---
>From 0ff712b2305d69c982934047680072990a2d7f45 Mon Sep 17 00:00:00 2001
From: Dimon Zhao <dimon.zhao at nebula-matrix.com>
Date: Fri, 27 Feb 2026 18:12:11 -0800
Subject: [PATCH] net/nbl: fix queue stats on restart

[ upstream commit 448bd23d0ef3601632a5b54b46e38ce9794c4101 ]

Remove tx_ring_num and rx_ring_num from struct nbl_txrx_mgt to fix
an issue where these counts keep increasing during port stop/start cycles.

The counts were incremented in tx_queue_setup/rx_queue_setup, but never
decremented. This causes incorrect queue counts after multiple port
restarts. Since the actual queue counts are already available via
eth_dev->data->nb_tx_queues and nb_rx_queues, use those instead.

Update nbl_res_txrx_get_xstats() to use eth_dev->data->nb_rx_queues.

Fixes: 661c0ccf2512 ("net/nbl: support statistics")

Signed-off-by: Dimon Zhao <dimon.zhao at nebula-matrix.com>
---
 drivers/net/nbl/nbl_hw/nbl_resource.h | 2 --
 drivers/net/nbl/nbl_hw/nbl_txrx.c     | 6 ++----
 2 files changed, 2 insertions(+), 6 deletions(-)

diff --git a/drivers/net/nbl/nbl_hw/nbl_resource.h b/drivers/net/nbl/nbl_hw/nbl_resource.h
index 469c3f5827..bf5a9461f5 100644
--- a/drivers/net/nbl/nbl_hw/nbl_resource.h
+++ b/drivers/net/nbl/nbl_hw/nbl_resource.h
@@ -220,6 +220,4 @@ struct nbl_txrx_mgt {
 	struct nbl_res_rx_ring **rx_rings;
 	u16 queue_offset;
-	u8 tx_ring_num;
-	u8 rx_ring_num;
 };
 
diff --git a/drivers/net/nbl/nbl_hw/nbl_txrx.c b/drivers/net/nbl/nbl_hw/nbl_txrx.c
index 48f20e4f4c..f29f0a6d5b 100644
--- a/drivers/net/nbl/nbl_hw/nbl_txrx.c
+++ b/drivers/net/nbl/nbl_hw/nbl_txrx.c
@@ -213,5 +213,4 @@ static int nbl_res_txrx_start_tx_ring(void *priv,
 
 	txrx_mgt->tx_rings[param->queue_idx] = tx_ring;
-	txrx_mgt->tx_ring_num++;
 
 	*dma_addr = tx_ring->ring_phys_addr;
@@ -367,5 +366,4 @@ static int nbl_res_txrx_start_rx_ring(void *priv,
 
 	txrx_mgt->rx_rings[param->queue_idx] = rx_ring;
-	txrx_mgt->rx_ring_num++;
 
 	*dma_addr = rx_ring->ring_phys_addr;
@@ -880,5 +878,5 @@ static int nbl_res_txrx_get_xstats(void *priv, struct rte_eth_xstat *xstats,
 {
 	struct nbl_resource_mgt *res_mgt = (struct nbl_resource_mgt *)priv;
-	struct nbl_txrx_mgt *txrx_mgt = NBL_RES_MGT_TO_TXRX_MGT(res_mgt);
+	struct rte_eth_dev *eth_dev = res_mgt->eth_dev;
 	struct nbl_res_rx_ring *rxq;
 	uint64_t rx_multi_descs = 0, rx_drop_noport = 0, rx_drop_proto = 0;
@@ -888,5 +886,5 @@ static int nbl_res_txrx_get_xstats(void *priv, struct rte_eth_xstat *xstats,
 
 	/* todo: get eth stats from emp */
-	for (i = 0; i < txrx_mgt->rx_ring_num; i++) {
+	for (i = 0; i < eth_dev->data->nb_rx_queues; i++) {
 		rxq = NBL_RES_MGT_TO_RX_RING(res_mgt, i);
 
-- 
2.53.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2026-03-19 10:01:08.841812644 +0000
+++ 0060-net-nbl-fix-queue-stats-on-restart.patch	2026-03-19 10:01:07.122611706 +0000
@@ -1 +1 @@
-From 448bd23d0ef3601632a5b54b46e38ce9794c4101 Mon Sep 17 00:00:00 2001
+From 0ff712b2305d69c982934047680072990a2d7f45 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 448bd23d0ef3601632a5b54b46e38ce9794c4101 ]
+
@@ -17 +18,0 @@
-Cc: stable at dpdk.org



More information about the stable mailing list