[PATCH 2/5] eal: fix multiprocess hotplug race
Artemy Kovalyov
artemyko at nvidia.com
Tue Dec 12 05:25:13 CET 2023
There exists a time gap between the creation of the multiprocess channel
and the registration of request action handlers. Within this window, a
secondary process that receives an eal_dev_mp_request broadcast
notification might respond with ENOTSUP. This, in turn, causes the
rte_dev_probe() operation to fail in another secondary process.
To avoid this, disregarding ENOTSUP responses to attach notifications.
Fixes: 244d5130719c ("eal: enable hotplug on multi-process")
Cc: stable at dpdk.org
Signed-off-by: Artemy Kovalyov <artemyko at nvidia.com>
---
lib/eal/common/hotplug_mp.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/lib/eal/common/hotplug_mp.c b/lib/eal/common/hotplug_mp.c
index 6027819..e6a3f6b 100644
--- a/lib/eal/common/hotplug_mp.c
+++ b/lib/eal/common/hotplug_mp.c
@@ -428,6 +428,9 @@ int eal_dev_hotplug_request_to_secondary(struct eal_dev_mp_req *req)
if (req->t == EAL_DEV_REQ_TYPE_ATTACH &&
resp->result == -EEXIST)
continue;
+ if (req->t == EAL_DEV_REQ_TYPE_ATTACH &&
+ resp->result == -ENOTSUP)
+ continue;
if (req->t == EAL_DEV_REQ_TYPE_DETACH &&
resp->result == -ENOENT)
continue;
--
1.8.3.1
More information about the stable
mailing list