v4: https://www.redhat.com/archives/libvir-list/2017-September/msg00532.html Since v4: - fixed the reviewer's notes in 1/7 - dropped the original 2/7 because of converting the udev private data into a lockable object - current 2/6 is a new patch reworking our current locking approach of the udev private data where we only relied on the driver global lock, after this patch, private data are going to be a self-lockable object - dropped the event counting from 4/7, the thread now reads everything it can until it gets EAGAIN/EWOULDBLOCK from libudev, which renders enablement/disablement of event loop fd polling unnecessary -> other minor adjustments raised during review -> dropped our udev fd sanity check from the worker thread, since the thread will encounter a libudev error sooner or later, so the sanity check inside the worker thread wouldn't really make a difference Erik Skultety (6): nodedev: Introduce udevEventMonitorSanityCheck helper function (ACKed) nodedev: udev: Convert udev private data to a lockable object (NEW) udev: Split udevEventHandleCallback in two functions (2/6 necessary changes) udev: Convert udevEventHandleThread to an actual thread routine (reworked) util: Introduce virFileWaitForExists (unchanged && ACKed) nodedev: Work around the uevent race by hooking up virFileWaitForAccess (unchanged && ACKed) src/libvirt_private.syms | 1 + src/node_device/node_device_udev.c | 281 ++++++++++++++++++++++++++++--------- src/node_device/node_device_udev.h | 3 - src/util/virfile.c | 31 ++++ src/util/virfile.h | 2 + 5 files changed, 249 insertions(+), 69 deletions(-) -- 2.13.6 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list