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: sta...@dpdk.org Signed-off-by: Artemy Kovalyov <artem...@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