patch 'net/netvsc: forward per-queue stats from VF device' has been queued to stable release 25.11.3

Kevin Traynor ktraynor at redhat.com
Thu Jul 23 19:14:54 CEST 2026


Hi,

FYI, your patch has been queued to stable release 25.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 07/27/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/85aa0227c51f5671489f6315ebdb69351462d1a5

Thanks.

Kevin

---
>From 85aa0227c51f5671489f6315ebdb69351462d1a5 Mon Sep 17 00:00:00 2001
From: Long Li <longli at microsoft.com>
Date: Fri, 15 May 2026 12:28:40 -0700
Subject: [PATCH] net/netvsc: forward per-queue stats from VF device

[ upstream commit 5520046c6b6a219b63662b61bfb567bbc1a4d29e ]

hn_vf_stats_get was ignoring the qstats parameter (__rte_unused),
calling rte_eth_stats_get which only collects aggregate stats. This
meant per-queue stats (rx_q0_good_packets, tx_q0_good_packets, etc.)
were always zero when VF datapath was active, even though the
underlying MANA driver populates them in its stats_get callback.

Call the VF device's stats_get op directly with the qstats pointer
so per-queue counters are forwarded through netvsc to the xstats
telemetry output.

Fixes: dc7680e8597c ("net/netvsc: support integrated VF")

Signed-off-by: Long Li <longli at microsoft.com>
---
 drivers/net/netvsc/hn_vf.c | 17 ++++++++++++++---
 1 file changed, 14 insertions(+), 3 deletions(-)

diff --git a/drivers/net/netvsc/hn_vf.c b/drivers/net/netvsc/hn_vf.c
index 087af3965d..67eb5a8d52 100644
--- a/drivers/net/netvsc/hn_vf.c
+++ b/drivers/net/netvsc/hn_vf.c
@@ -746,5 +746,5 @@ void hn_vf_rx_queue_release(struct hn_data *hv, uint16_t queue_id)
 int hn_vf_stats_get(struct rte_eth_dev *dev,
 		    struct rte_eth_stats *stats,
-		    struct eth_queue_stats *qstats __rte_unused)
+		    struct eth_queue_stats *qstats)
 {
 	struct hn_data *hv = dev->data->dev_private;
@@ -754,6 +754,17 @@ int hn_vf_stats_get(struct rte_eth_dev *dev,
 	rte_rwlock_read_lock(&hv->vf_lock);
 	vf_dev = hn_get_vf_dev(hv);
-	if (vf_dev)
-		ret = rte_eth_stats_get(vf_dev->data->port_id, stats);
+	if (vf_dev) {
+		/* Call dev_ops->stats_get directly instead of the public
+		 * rte_eth_stats_get API because we need to forward the
+		 * per-queue stats (qstats) which the public API does not
+		 * support.  The caller (eth_stats_qstats_get) has already
+		 * zeroed stats and qstats before invoking this callback.
+		 */
+		if (vf_dev->dev_ops->stats_get != NULL)
+			ret = vf_dev->dev_ops->stats_get(vf_dev, stats,
+							 qstats);
+		else
+			ret = -ENOTSUP;
+	}
 	rte_rwlock_read_unlock(&hv->vf_lock);
 	return ret;
-- 
2.55.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2026-07-23 17:57:59.570105874 +0100
+++ 0031-net-netvsc-forward-per-queue-stats-from-VF-device.patch	2026-07-23 17:57:58.642602189 +0100
@@ -1 +1 @@
-From 5520046c6b6a219b63662b61bfb567bbc1a4d29e Mon Sep 17 00:00:00 2001
+From 85aa0227c51f5671489f6315ebdb69351462d1a5 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 5520046c6b6a219b63662b61bfb567bbc1a4d29e ]
+
@@ -17 +18,0 @@
-Cc: stable at dpdk.org
@@ -25 +26 @@
-index 1fcc65a712..c83cc973fd 100644
+index 087af3965d..67eb5a8d52 100644
@@ -28 +29 @@
-@@ -750,5 +750,5 @@ void hn_vf_rx_queue_release(struct hn_data *hv, uint16_t queue_id)
+@@ -746,5 +746,5 @@ void hn_vf_rx_queue_release(struct hn_data *hv, uint16_t queue_id)
@@ -35 +36 @@
-@@ -758,6 +758,17 @@ int hn_vf_stats_get(struct rte_eth_dev *dev,
+@@ -754,6 +754,17 @@ int hn_vf_stats_get(struct rte_eth_dev *dev,



More information about the stable mailing list