patch 'net/dpaa2: warn on Rx descriptor limit in high perf mode' has been queued to stable release 23.11.7

Shani Peretz shperetz at nvidia.com
Wed Apr 15 12:00:24 CEST 2026


Hi,

FYI, your patch has been queued to stable release 23.11.7

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

This queued commit can be viewed at:
https://github.com/shanipr/dpdk-stable/commit/b821e6dc6c9380dd9e459b05de3c7d854223ee83

Thanks.

Shani

---
>From b821e6dc6c9380dd9e459b05de3c7d854223ee83 Mon Sep 17 00:00:00 2001
From: Maxime Leroy <maxime at leroys.fr>
Date: Wed, 25 Mar 2026 21:45:30 +0100
Subject: [PATCH] net/dpaa2: warn on Rx descriptor limit in high perf mode

[ upstream commit 69226df1cf0e05a2dd0949f2f6f8698ee915bdda ]

The Rx descriptor count warning fires unconditionally when the total
exceeds 11264, but this limit only applies when the DPNI is created
with the high performance buffer option (0x80000000). When using normal
buffers, there is no such limit and the warning is
misleading noise.

Check the DPNI options to only warn when the high performance buffer
mode is active.

Fixes: 35dc25d12792 ("net/dpaa2: warn on high Rx descriptor number")

Signed-off-by: Maxime Leroy <maxime at leroys.fr>
Acked-by: Hemant Agrawal <hemant.agrawal at nxp.com>
---
 drivers/net/dpaa2/dpaa2_ethdev.c | 17 +++++++++++------
 drivers/net/dpaa2/mc/fsl_dpni.h  |  6 ++++++
 2 files changed, 17 insertions(+), 6 deletions(-)

diff --git a/drivers/net/dpaa2/dpaa2_ethdev.c b/drivers/net/dpaa2/dpaa2_ethdev.c
index fe8689ae05..809abbe1e3 100644
--- a/drivers/net/dpaa2/dpaa2_ethdev.c
+++ b/drivers/net/dpaa2/dpaa2_ethdev.c
@@ -75,8 +75,9 @@ int dpaa2_timestamp_dynfield_offset = -1;
 /* Enable error queue */
 bool dpaa2_enable_err_queue;
 
-#define MAX_NB_RX_DESC		11264
-int total_nb_rx_desc;
+/* Rx descriptor limit when DPNI loads PFDRs in PEB */
+#define MAX_NB_RX_DESC_IN_PEB	11264
+static int total_nb_rx_desc;
 
 int dpaa2_valid_dev;
 struct rte_mempool *dpaa2_tx_sg_pool;
@@ -727,10 +728,14 @@ dpaa2_dev_rx_queue_setup(struct rte_eth_dev *dev,
 			dev, rx_queue_id, mb_pool, rx_conf);
 
 	total_nb_rx_desc += nb_rx_desc;
-	if (total_nb_rx_desc > MAX_NB_RX_DESC) {
-		DPAA2_PMD_WARN("Total nb_rx_desc exceeds %d limit. Please use Normal buffers",
-			       MAX_NB_RX_DESC);
-		DPAA2_PMD_WARN("To use Normal buffers, run 'export DPNI_NORMAL_BUF=1' before running dynamic_dpl.sh script");
+	if (total_nb_rx_desc > MAX_NB_RX_DESC_IN_PEB &&
+	    (priv->options & DPNI_OPT_V1_PFDR_IN_PEB)) {
+		DPAA2_PMD_WARN("RX descriptor exceeds limit(%d) to load PFDR in PEB",
+			       MAX_NB_RX_DESC_IN_PEB);
+		DPAA2_PMD_WARN("Suggest removing 0x%08x from DPNI creating options(0x%08x)",
+			       DPNI_OPT_V1_PFDR_IN_PEB, priv->options);
+		DPAA2_PMD_WARN("Or reduce RX descriptor number(%d) per queue",
+			       nb_rx_desc);
 	}
 
 	/* Rx deferred start is not supported */
diff --git a/drivers/net/dpaa2/mc/fsl_dpni.h b/drivers/net/dpaa2/mc/fsl_dpni.h
index ce84f4265e..c4fcf7db30 100644
--- a/drivers/net/dpaa2/mc/fsl_dpni.h
+++ b/drivers/net/dpaa2/mc/fsl_dpni.h
@@ -116,6 +116,12 @@ struct fsl_mc_io;
  * Flow steering table is shared between all traffic classes
  */
 #define DPNI_OPT_SHARED_FS				0x001000
+/*
+ * PFDR in PEB mode (v1 layout).
+ * The total number of Rx descriptors is limited to 11264 in this mode.
+ * When not set, PFDRs are stored in DDR and there is no such limit.
+ */
+#define DPNI_OPT_V1_PFDR_IN_PEB		0x80000000
 /**
  * Software sequence maximum layout size
  */
-- 
2.43.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2026-04-14 14:44:36.614245207 +0300
+++ 0083-net-dpaa2-warn-on-Rx-descriptor-limit-in-high-perf-m.patch	2026-04-14 14:44:28.861663000 +0300
@@ -1 +1 @@
-From 69226df1cf0e05a2dd0949f2f6f8698ee915bdda Mon Sep 17 00:00:00 2001
+From b821e6dc6c9380dd9e459b05de3c7d854223ee83 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 69226df1cf0e05a2dd0949f2f6f8698ee915bdda ]
+
@@ -16 +17,0 @@
-Cc: stable at dpdk.org
@@ -26 +27 @@
-index eb8333458e..605c75ad70 100644
+index fe8689ae05..809abbe1e3 100644
@@ -29,3 +30,3 @@
-@@ -74,8 +74,9 @@ int dpaa2_timestamp_dynfield_offset = -1;
- 
- bool dpaa2_print_parser_result;
+@@ -75,8 +75,9 @@ int dpaa2_timestamp_dynfield_offset = -1;
+ /* Enable error queue */
+ bool dpaa2_enable_err_queue;
@@ -41 +42 @@
-@@ -905,10 +906,14 @@ dpaa2_dev_rx_queue_setup(struct rte_eth_dev *dev,
+@@ -727,10 +728,14 @@ dpaa2_dev_rx_queue_setup(struct rte_eth_dev *dev,
@@ -59 +60 @@
- 	if (!priv->bp_list || priv->bp_list->mp != mb_pool) {
+ 	/* Rx deferred start is not supported */
@@ -61 +62 @@
-index fcc6d4726e..42d633eaf8 100644
+index ce84f4265e..c4fcf7db30 100644
@@ -64,2 +65,2 @@
-@@ -121,6 +121,12 @@ struct fsl_mc_io;
-  * The stashing is enabled by default.
+@@ -116,6 +116,12 @@ struct fsl_mc_io;
+  * Flow steering table is shared between all traffic classes
@@ -67 +68 @@
- #define DPNI_OPT_STASHING_DIS			0x002000
+ #define DPNI_OPT_SHARED_FS				0x001000


More information about the stable mailing list