patch 'eal/linux: filter uevent Netlink in kernel' has been queued to stable release 24.11.9
luca.boccassi at gmail.com
luca.boccassi at gmail.com
Tue Oct 27 12:48:16 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 10/29/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/1e5e7cf0261c5e0f50f9dff896bb73cfa36a2cbb
Thanks.
Luca Boccassi
---
>From 1e5e7cf0261c5e0f50f9dff896bb73cfa36a2cbb Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen at networkplumber.org>
Date: Wed, 19 Aug 2026 12:08:50 -0700
Subject: [PATCH] eal/linux: filter uevent Netlink in kernel
[ upstream commit 17d915f1b2f838ccf42bb68f991031df928f9870 ]
The EAL uevent only needs/wants messages from the kernel.
Better to let kernel side do the filtering to avoid any overrun
issues in DPDK interrupt thread.
There is no exposed API definition here. The convention
is kernel is 1 and libudev uses 2.
Since kernel is now filtering, we can remove step in uevent parsing.
Fixes: 0d0f478d0483 ("eal/linux: add uevent parse and process")
Reported-by: Randy Tice <rtice at cisco.com>
Signed-off-by: Stephen Hemminger <stephen at networkplumber.org>
Reviewed-by: Long Li <longli at microsoft.com>
---
.mailmap | 1 +
lib/eal/linux/eal_dev.c | 12 ++++--------
2 files changed, 5 insertions(+), 8 deletions(-)
diff --git a/.mailmap b/.mailmap
index 17f1b66a2ad..79116dd8de2 100644
--- a/.mailmap
+++ b/.mailmap
@@ -1314,6 +1314,7 @@ Rakesh Kudurumalla <rkudurumalla at marvell.com> <rkudurumalla at caviumnetworks.com>
Ralf Hoffmann <ralf.hoffmann at allegro-packets.com>
Rami Rosen <ramirose at gmail.com> <rami.rosen at intel.com> <roszenrami at gmail.com>
Randy Schacher <stuart.schacher at broadcom.com>
+Randy Tice <rtice at cisco.com>
Rani Sharoni <ranish at nvidia.com>
Ranjit Menon <ranjit.menon at intel.com>
Rasesh Mody <rmody at marvell.com> <rasesh.mody at cavium.com> <rasesh.mody at qlogic.com>
diff --git a/lib/eal/linux/eal_dev.c b/lib/eal/linux/eal_dev.c
index be97f56424d..5e60bb018b9 100644
--- a/lib/eal/linux/eal_dev.c
+++ b/lib/eal/linux/eal_dev.c
@@ -28,6 +28,9 @@ static bool hotplug_handle;
#define EAL_UEV_MSG_LEN 4096
#define EAL_UEV_MSG_ELEM_LEN 128
+/* Listen only to messages from kernel (not libudev) */
+#define EAL_UEV_GROUP_KERNEL 1
+
/*
* spinlock for device hot-unplug failure handling. If it try to access bus or
* device, such as handle sigbus on bus or handle memory failure for device
@@ -115,7 +118,7 @@ dev_uev_socket_fd_create(void)
memset(&addr, 0, sizeof(addr));
addr.nl_family = AF_NETLINK;
addr.nl_pid = 0;
- addr.nl_groups = 0xffffffff;
+ addr.nl_groups = EAL_UEV_GROUP_KERNEL;
ret = bind(fd, (struct sockaddr *) &addr, sizeof(addr));
if (ret < 0) {
@@ -159,13 +162,6 @@ dev_uev_parse(const char *buf, struct rte_dev_event *event, int length)
if (i >= length)
break;
- /**
- * check device uevent from kernel side, no need to check
- * uevent from udev.
- */
- if (!strncmp(buf, "libudev", 7)) {
- return -1;
- }
if (!strncmp(buf, "ACTION=", 7)) {
buf += 7;
i += 7;
--
2.47.3
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2026-10-27 11:43:53.866545868 +0000
+++ 0002-eal-linux-filter-uevent-Netlink-in-kernel.patch 2026-10-27 11:43:53.494058830 +0000
@@ -1 +1 @@
-From 17d915f1b2f838ccf42bb68f991031df928f9870 Mon Sep 17 00:00:00 2001
+From 1e5e7cf0261c5e0f50f9dff896bb73cfa36a2cbb Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 17d915f1b2f838ccf42bb68f991031df928f9870 ]
+
@@ -16 +17,0 @@
-Cc: stable at dpdk.org
@@ -27 +28 @@
-index fcb3d1bb3f..9b7713b6df 100644
+index 17f1b66a2ad..79116dd8de2 100644
@@ -30,3 +31,3 @@
-@@ -1380,6 +1380,7 @@ Ralf Hoffmann <ralf.hoffmann at allegro-packets.com>
- Rami Rosen <ramirose at gmail.com> <rami.rosen at intel.com>
- Rami Rosen <ramirose at gmail.com> <roszenrami at gmail.com>
+@@ -1314,6 +1314,7 @@ Rakesh Kudurumalla <rkudurumalla at marvell.com> <rkudurumalla at caviumnetworks.com>
+ Ralf Hoffmann <ralf.hoffmann at allegro-packets.com>
+ Rami Rosen <ramirose at gmail.com> <rami.rosen at intel.com> <roszenrami at gmail.com>
@@ -37 +38 @@
- Rasesh Mody <rmody at marvell.com> <rasesh.mody at cavium.com>
+ Rasesh Mody <rmody at marvell.com> <rasesh.mody at cavium.com> <rasesh.mody at qlogic.com>
@@ -39 +40 @@
-index ec408649d0..5c22c5b16b 100644
+index be97f56424d..5e60bb018b9 100644
@@ -42 +43 @@
-@@ -29,6 +29,9 @@ static bool hotplug_handle;
+@@ -28,6 +28,9 @@ static bool hotplug_handle;
@@ -52 +53 @@
-@@ -116,7 +119,7 @@ dev_uev_socket_fd_create(void)
+@@ -115,7 +118,7 @@ dev_uev_socket_fd_create(void)
@@ -61 +62 @@
-@@ -160,13 +163,6 @@ dev_uev_parse(const char *buf, struct rte_dev_event *event, int length)
+@@ -159,13 +162,6 @@ dev_uev_parse(const char *buf, struct rte_dev_event *event, int length)
More information about the stable
mailing list