From aa5fd83ec676ff894483486fb3f76b4ac506f196 Mon Sep 17 00:00:00 2001 From: Michal Sekletár Date: Dec 15 2020 09:45:54 +0000 Subject: device: don't emit PropetiesChanged needlessly Functions called from device_setup_unit() already make sure that unit is enqueued in case it is a new unit or properties exported on the bus have changed. This should prevent unnecessary DBus wakeups and associated DBus traffic when device_setup_unit() was called while reparsing /proc/self/mountinfo due to the mountinfo notifications. Note that we parse /proc/self/mountinfo quite often on the busy systems (e.g. k8s container hosts) but majority of the time mounts didn't change, only some mount got added. Thus we don't need to generate PropertiesChanged for devices associated with the mounts that didn't change. Thanks to Renaud Métrich for debugging the problem and providing draft version of the patch. (cherry picked from commit 2e129d5d6bd6bd8be4b5359e81a880cbf72a44b8) Resolves: #1793533 patch_name: 0431-device-don-t-emit-PropetiesChanged-needlessly.patch present_in_specfile: true location_in_specfile: 431 squash_commits: true --- diff --git a/src/core/device.c b/src/core/device.c index 21fe380..021c28d 100644 --- a/src/core/device.c +++ b/src/core/device.c @@ -549,9 +549,6 @@ static int device_setup_unit(Manager *m, struct udev_device *dev, const char *pa if (dev && device_is_bound_by_mounts(DEVICE(u), dev)) device_upgrade_mount_deps(u); - /* Note that this won't dispatch the load queue, the caller has to do that if needed and appropriate */ - unit_add_to_dbus_queue(u); - return 0; fail: