patch 'bus/vdev: fix devargs in secondary process' has been queued to stable release 21.11.7
Kevin Traynor
ktraynor at redhat.com
Fri Mar 8 15:28:17 CET 2024
Hi,
FYI, your patch has been queued to stable release 21.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 03/13/24. 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/f49c39dd0114d18f0b69169726cf1883598ea9f1
Thanks.
Kevin
---
>From f49c39dd0114d18f0b69169726cf1883598ea9f1 Mon Sep 17 00:00:00 2001
From: Mingjin Ye <mingjinx.ye at intel.com>
Date: Fri, 1 Sep 2023 07:24:09 +0000
Subject: [PATCH] bus/vdev: fix devargs in secondary process
[ upstream commit 6666628362c94a0b567a39a0177539c12c97d999 ]
When a device is created by a secondary process, an empty devargs is
temporarily generated and bound to it. This causes the device to not
be associated with the correct devargs, and the empty devargs are not
released when the resource is freed.
This patch fixes the issue by matching the devargs when inserting a
device in secondary process.
Fixes: dda987315ca2 ("vdev: make virtual bus use its device struct")
Fixes: a16040453968 ("eal: extract vdev infra")
Signed-off-by: Mingjin Ye <mingjinx.ye at intel.com>
Acked-by: Anatoly Burakov <anatoly.burakov at intel.com>
---
drivers/bus/vdev/vdev.c | 22 +++++++++++++++++++++-
1 file changed, 21 insertions(+), 1 deletion(-)
diff --git a/drivers/bus/vdev/vdev.c b/drivers/bus/vdev/vdev.c
index 272ea704e5..c9f07af493 100644
--- a/drivers/bus/vdev/vdev.c
+++ b/drivers/bus/vdev/vdev.c
@@ -266,4 +266,20 @@ alloc_devargs(const char *name, const char *args)
}
+static struct rte_devargs *
+vdev_devargs_lookup(const char *name)
+{
+ struct rte_devargs *devargs;
+ char dev_name[32];
+
+ RTE_EAL_DEVARGS_FOREACH("vdev", devargs) {
+ devargs->bus->parse(devargs->name, &dev_name);
+ if (strcmp(dev_name, name) == 0) {
+ VDEV_LOG(INFO, "devargs matched %s", dev_name);
+ return devargs;
+ }
+ }
+ return NULL;
+}
+
static int
insert_vdev(const char *name, const char *args,
@@ -278,5 +294,9 @@ insert_vdev(const char *name, const char *args,
return -EINVAL;
- devargs = alloc_devargs(name, args);
+ if (rte_eal_process_type() == RTE_PROC_PRIMARY)
+ devargs = alloc_devargs(name, args);
+ else
+ devargs = vdev_devargs_lookup(name);
+
if (!devargs)
return -ENOMEM;
--
2.43.2
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2024-03-08 13:47:49.882258672 +0000
+++ 0029-bus-vdev-fix-devargs-in-secondary-process.patch 2024-03-08 13:47:49.037686720 +0000
@@ -1 +1 @@
-From 6666628362c94a0b567a39a0177539c12c97d999 Mon Sep 17 00:00:00 2001
+From f49c39dd0114d18f0b69169726cf1883598ea9f1 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 6666628362c94a0b567a39a0177539c12c97d999 ]
+
@@ -16 +17,0 @@
-Cc: stable at dpdk.org
@@ -25 +26 @@
-index 05582f1727..14cf856237 100644
+index 272ea704e5..c9f07af493 100644
@@ -28 +29 @@
-@@ -264,4 +264,20 @@ alloc_devargs(const char *name, const char *args)
+@@ -266,4 +266,20 @@ alloc_devargs(const char *name, const char *args)
@@ -49 +50 @@
-@@ -276,5 +292,9 @@ insert_vdev(const char *name, const char *args,
+@@ -278,5 +294,9 @@ insert_vdev(const char *name, const char *args,
More information about the stable
mailing list