patch 'net/af_xdp: fix custom program loading with multiple queues' has been queued to stable release 21.11.1

Kevin Traynor ktraynor at redhat.com
Wed Mar 16 16:15:10 CET 2022


Hi,

FYI, your patch has been queued to stable release 21.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/21/22. 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/8fc808eaa3027b2d69c4e6ff76c9e19ed98f72fe

Thanks.

Kevin

---
>From 8fc808eaa3027b2d69c4e6ff76c9e19ed98f72fe Mon Sep 17 00:00:00 2001
From: Junxiao Shi <git at mail1.yoursunny.com>
Date: Wed, 9 Mar 2022 21:18:43 +0000
Subject: [PATCH] net/af_xdp: fix custom program loading with multiple queues

[ upstream commit 6f6134c35e3d2340e07f86414c75413e3ac7a0bc ]

When the PMD is configured to load a custom XDP program, it sets
XSK_LIBBPF_FLAGS__INHIBIT_PROG_LOAD flag to prevent libbpf from
loading its default XDP program. However, when queue_count is set to
greater than 1, this flag is only set for the first XSK socket but not
for subsequent XSK sockets. This causes XSK socket creation failure.

This commit ensures that XSK_LIBBPF_FLAGS__INHIBIT_PROG_LOAD flag is
set for all XSK socket creations when custom XDP program is being used.

Fixes: 01fa83c94d7e ("net/af_xdp: workaround custom program loading")

Signed-off-by: Junxiao Shi <git at mail1.yoursunny.com>
---
 drivers/net/af_xdp/rte_eth_af_xdp.c | 23 ++++++++++++-----------
 1 file changed, 12 insertions(+), 11 deletions(-)

diff --git a/drivers/net/af_xdp/rte_eth_af_xdp.c b/drivers/net/af_xdp/rte_eth_af_xdp.c
index 958f18e6d5..80aa55fb22 100644
--- a/drivers/net/af_xdp/rte_eth_af_xdp.c
+++ b/drivers/net/af_xdp/rte_eth_af_xdp.c
@@ -1269,16 +1269,17 @@ xsk_configure(struct pmd_internals *internals, struct pkt_rx_queue *rxq,
 #endif
 
-	if (strnlen(internals->prog_path, PATH_MAX) &&
-				!internals->custom_prog_configured) {
-		ret = load_custom_xdp_prog(internals->prog_path,
-					   internals->if_index,
-					   &internals->map);
-		if (ret) {
-			AF_XDP_LOG(ERR, "Failed to load custom XDP program %s\n",
-					internals->prog_path);
-			goto out_umem;
+	if (strnlen(internals->prog_path, PATH_MAX)) {
+		if (!internals->custom_prog_configured) {
+			ret = load_custom_xdp_prog(internals->prog_path,
+							internals->if_index,
+							&internals->map);
+			if (ret) {
+				AF_XDP_LOG(ERR, "Failed to load custom XDP program %s\n",
+						internals->prog_path);
+				goto out_umem;
+			}
+			internals->custom_prog_configured = 1;
 		}
-		internals->custom_prog_configured = 1;
-		cfg.libbpf_flags = XSK_LIBBPF_FLAGS__INHIBIT_PROG_LOAD;
+		cfg.libbpf_flags |= XSK_LIBBPF_FLAGS__INHIBIT_PROG_LOAD;
 	}
 
-- 
2.34.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2022-03-16 15:14:12.372322524 +0000
+++ 0009-net-af_xdp-fix-custom-program-loading-with-multiple-.patch	2022-03-16 15:14:12.108847604 +0000
@@ -1 +1 @@
-From 6f6134c35e3d2340e07f86414c75413e3ac7a0bc Mon Sep 17 00:00:00 2001
+From 8fc808eaa3027b2d69c4e6ff76c9e19ed98f72fe Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 6f6134c35e3d2340e07f86414c75413e3ac7a0bc ]
+
@@ -16 +17,0 @@
-Cc: stable at dpdk.org
@@ -24 +25 @@
-index 65479138d3..9920f49870 100644
+index 958f18e6d5..80aa55fb22 100644
@@ -27 +28 @@
-@@ -1308,16 +1308,17 @@ xsk_configure(struct pmd_internals *internals, struct pkt_rx_queue *rxq,
+@@ -1269,16 +1269,17 @@ xsk_configure(struct pmd_internals *internals, struct pkt_rx_queue *rxq,



More information about the stable mailing list