patch 'net/iavf: fix bandwidth config of unshaped queues' has been queued to stable release 24.11.9

luca.boccassi at gmail.com luca.boccassi at gmail.com
Thu Nov 5 17:42:10 CET 2026


Hi,

FYI, your patch has been queued to stable release 24.11.9

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

This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/32576a644e1181cb676cf59d801cd03c105cc98b

Thanks.

Luca Boccassi

---
>From 32576a644e1181cb676cf59d801cd03c105cc98b Mon Sep 17 00:00:00 2001
From: Dawid Wesierski <dawid.wesierski at intel.com>
Date: Tue, 20 Oct 2026 15:22:11 +0000
Subject: [PATCH] net/iavf: fix bandwidth config of unshaped queues

[ upstream commit d2a76fc571b310fa3a46adc167cdea3cec7248ea ]

When configuring queue bandwidth via virtchnl in iavf_hierarchy_commit(),
an entry in the bandwidth configuration array is allocated for each queue
node. However, the driver only populated queue_id and tc for nodes that
had an active shaper profile.

Because the configuration buffer is zero-initialized with calloc(), any
unshaped queue node left its entry with queue_id 0, tc 0, and zero rate
limits. Consequently, the PF interpreted each unshaped queue entry as a
request to reset queue 0 to default bandwidth, leaving the actual target
queue untouched on the PF. Any previously configured rate limit on that
queue remained active, even across subsequent queue enables or process
restarts.

Fix this by setting queue_id and tc for every queue node, ensuring
unshaped queues properly send zeroed shaper rates for their own queue ID
so the PF restores their default bandwidth.

Fixes: 5779a8894d15 ("net/iavf: support queue rate limit configuration")

Signed-off-by: Dawid Wesierski <dawid.wesierski at intel.com>
Acked-by: Bruce Richardson <bruce.richardson at intel.com>
---
 drivers/net/iavf/iavf_tm.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/iavf/iavf_tm.c b/drivers/net/iavf/iavf_tm.c
index 86591e2b3c0..73e69e8946a 100644
--- a/drivers/net/iavf/iavf_tm.c
+++ b/drivers/net/iavf/iavf_tm.c
@@ -861,15 +861,15 @@ static int iavf_hierarchy_commit(struct rte_eth_dev *dev,
 		}
 		q_tc_mapping->tc[tm_node->tc].req.queue_count++;
 
+		q_bw->cfg[node_committed].queue_id = tm_node->id;
+		q_bw->cfg[node_committed].tc = tm_node->tc;
 		if (tm_node->shaper_profile) {
-			q_bw->cfg[node_committed].queue_id = node_committed;
 			q_bw->cfg[node_committed].shaper.peak =
 			tm_node->shaper_profile->profile.peak.rate /
 			1000 * IAVF_BITS_PER_BYTE;
 			q_bw->cfg[node_committed].shaper.committed =
 			tm_node->shaper_profile->profile.committed.rate /
 			1000 * IAVF_BITS_PER_BYTE;
-			q_bw->cfg[node_committed].tc = tm_node->tc;
 		}
 
 		node_committed++;
-- 
2.47.3

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2026-11-05 16:42:46.660734775 +0000
+++ 0043-net-iavf-fix-bandwidth-config-of-unshaped-queues.patch	2026-11-05 16:42:44.949061623 +0000
@@ -1 +1 @@
-From d2a76fc571b310fa3a46adc167cdea3cec7248ea Mon Sep 17 00:00:00 2001
+From 32576a644e1181cb676cf59d801cd03c105cc98b Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit d2a76fc571b310fa3a46adc167cdea3cec7248ea ]
+
@@ -24 +25,0 @@
-Cc: stable at dpdk.org
@@ -29 +30 @@
- drivers/net/intel/iavf/iavf_tm.c | 4 ++--
+ drivers/net/iavf/iavf_tm.c | 4 ++--
@@ -32,5 +33,5 @@
-diff --git a/drivers/net/intel/iavf/iavf_tm.c b/drivers/net/intel/iavf/iavf_tm.c
-index 603da09bb5..57075ee5b8 100644
---- a/drivers/net/intel/iavf/iavf_tm.c
-+++ b/drivers/net/intel/iavf/iavf_tm.c
-@@ -867,15 +867,15 @@ static int iavf_hierarchy_commit(struct rte_eth_dev *dev,
+diff --git a/drivers/net/iavf/iavf_tm.c b/drivers/net/iavf/iavf_tm.c
+index 86591e2b3c0..73e69e8946a 100644
+--- a/drivers/net/iavf/iavf_tm.c
++++ b/drivers/net/iavf/iavf_tm.c
+@@ -861,15 +861,15 @@ static int iavf_hierarchy_commit(struct rte_eth_dev *dev,
@@ -43 +44 @@
--			q_bw->cfg[node_committed].queue_id = tm_node->id;
+-			q_bw->cfg[node_committed].queue_id = node_committed;


More information about the stable mailing list