patch 'net/mlx5: fix polling CQEs' has been queued to stable release 24.11.2

Kevin Traynor ktraynor at redhat.com
Thu Feb 13 10:57:47 CET 2025


Hi,

FYI, your patch has been queued to stable release 24.11.2

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

Thanks.

Kevin

---
>From a0008d4df03f25a264ae7a1a88131b2e07d50ad9 Mon Sep 17 00:00:00 2001
From: Gavin Hu <gahu at nvidia.com>
Date: Fri, 6 Dec 2024 02:58:11 +0200
Subject: [PATCH] net/mlx5: fix polling CQEs

[ upstream commit 73f7ae1d721aa5c388123db11827937205985999 ]

In certain situations, the receive queue (rxq) fails to replenish its
internal ring with memory buffers (mbufs) from the pool. This can happen
when the pool has a limited number of mbufs allocated, and the user
application holds incoming packets for an extended period, resulting in a
delayed release of mbufs. Consequently, the pool becomes depleted,
preventing the rxq from replenishing from it.

There was a bug in the behavior of the vectorized rxq_cq_process_v routine,
which handled completion queue entries (CQEs) in batches of four. This
routine consistently accessed four mbufs from the internal queue ring,
regardless of whether they had been replenished. As a result, it could
access mbufs that no longer belonged to the poll mode driver (PMD).

The fix involves checking if there are four replenished mbufs available
before allowing rxq_cq_process_v to handle the batch. Once replenishment
succeeds during the polling process, the routine will resume its operation.

Fixes: 1ded26239aa0 ("net/mlx5: refactor vectorized Rx")

Reported-by: Changqi Dingluo <dingluochangqi.ck at bytedance.com>
Signed-off-by: Gavin Hu <gahu at nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo at nvidia.com>
---
 .mailmap                         | 3 ++-
 drivers/net/mlx5/mlx5_rxtx_vec.c | 3 +++
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/.mailmap b/.mailmap
index 2c7a5d007e..07ae8c48fc 100644
--- a/.mailmap
+++ b/.mailmap
@@ -226,4 +226,5 @@ Chang Miao <chang.miao at corigine.com>
 Changchun Ouyang <changchun.ouyang at intel.com>
 Changpeng Liu <changpeng.liu at intel.com>
+Changqi Dingluo <dingluochangqi.ck at bytedance.com>
 Changqing Wu <changqingx.wu at intel.com>
 Chaoyong He <chaoyong.he at corigine.com>
@@ -465,5 +466,5 @@ Gary Mussar <gmussar at ciena.com>
 Gaurav Singh <gaurav1086 at gmail.com>
 Gautam Dawar <gdawar at solarflare.com>
-Gavin Hu <gavin.hu at arm.com> <gavin.hu at linaro.org>
+Gavin Hu <gahu at nvidia.com> <gavin.hu at arm.com> <gavin.hu at linaro.org>
 Gavin Li <gavinl at nvidia.com>
 Geoffrey Le Gourriérec <geoffrey.le_gourrierec at 6wind.com>
diff --git a/drivers/net/mlx5/mlx5_rxtx_vec.c b/drivers/net/mlx5/mlx5_rxtx_vec.c
index 1872bf310c..1b701801c5 100644
--- a/drivers/net/mlx5/mlx5_rxtx_vec.c
+++ b/drivers/net/mlx5/mlx5_rxtx_vec.c
@@ -326,4 +326,7 @@ rxq_burst_v(struct mlx5_rxq_data *rxq, struct rte_mbuf **pkts,
 	pkts_n = RTE_MIN(pkts_n, q_n - elts_idx);
 	pkts_n = RTE_MIN(pkts_n, q_n - cq_idx);
+	/* Not to move past the allocated mbufs. */
+	pkts_n = RTE_MIN(pkts_n, RTE_ALIGN_FLOOR(rxq->rq_ci - rxq->rq_pi,
+						MLX5_VPMD_DESCS_PER_LOOP));
 	if (!pkts_n) {
 		*no_cq = !rcvd_pkt;
-- 
2.48.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-02-12 17:29:36.744515995 +0000
+++ 0020-net-mlx5-fix-polling-CQEs.patch	2025-02-12 17:29:34.190944975 +0000
@@ -1 +1 @@
-From 73f7ae1d721aa5c388123db11827937205985999 Mon Sep 17 00:00:00 2001
+From a0008d4df03f25a264ae7a1a88131b2e07d50ad9 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 73f7ae1d721aa5c388123db11827937205985999 ]
+
@@ -24 +25,0 @@
-Cc: stable at dpdk.org
@@ -35 +36 @@
-index 38e511a28b..1ed47e1cad 100644
+index 2c7a5d007e..07ae8c48fc 100644
@@ -44 +45 @@
-@@ -466,5 +467,5 @@ Gary Mussar <gmussar at ciena.com>
+@@ -465,5 +466,5 @@ Gary Mussar <gmussar at ciena.com>



More information about the stable mailing list