From 08c8ef5eb30983d6ca004e84a11fe7f2547f984e Mon Sep 17 00:00:00 2001 Message-Id: <08c8ef5eb30983d6ca004e84a11fe7f2547f984e@dist-git> From: Jonathon Jongsma Date: Tue, 23 Aug 2022 12:28:02 -0500 Subject: [PATCH] nodedev: wait a bit longer for new node devices Openstack developers reported that newly-created mdevs were not recognized by libvirt until after a libvirt daemon restart. The source of the problem appears to be that when libvirt gets the udev 'add' event, the sysfs tree for that device might not be ready and so libvirt waits 100ms for it to appear (max 100 waits of 1ms each). But in the OpenStack environment, the sysfs tree for new mediated devices was taking closer to 250ms to appear and therefore libvirt gave up waiting and didn't add these new devices to its list of nodedevs. By changing the wait time to 1 second (max 100 waits of 10ms each), this should provide enough time to enable these deployments to recognize newly-created mediated devices, but it shouldn't increase the delay for more traditional deployments too much. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2109450 Signed-off-by: Jonathon Jongsma Reviewed-by: Erik Skultety (cherry picked from commit e4f9682ebc442bb5dfee807ba618c8863355776d) Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2141364 Signed-off-by: Jonathon Jongsma --- src/node_device/node_device_udev.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/node_device/node_device_udev.c b/src/node_device/node_device_udev.c index 3d69bdedae..1f63162e23 100644 --- a/src/node_device/node_device_udev.c +++ b/src/node_device/node_device_udev.c @@ -1036,7 +1036,7 @@ udevProcessMediatedDevice(struct udev_device *dev, linkpath = g_strdup_printf("%s/mdev_type", udev_device_get_syspath(dev)); - if (virFileWaitForExists(linkpath, 1, 100) < 0) { + if (virFileWaitForExists(linkpath, 10, 100) < 0) { virReportSystemError(errno, _("failed to wait for file '%s' to appear"), linkpath); -- 2.38.1