https://bugzilla.redhat.com/show_bug.cgi?id=1069718
--- Comment #4 from Stephen Tweedie sct@redhat.com --- (In reply to Lennart Poettering from comment #3)
The O(n^2) PropertiesChanged messages will not be generated anymore with systemd git:
http://cgit.freedesktop.org/systemd/systemd/commit/ ?id=ff5f34d08c191c326c41a083745522383ac86cae
But I am working on a couple of more fixes to follow.
Thanks --- I've built a rhel7 systemd with this plus aef831369cd2a7a1bd4a58dd96ff8628ed6a85f9, and things are *vastly* improved.
The 4000 bind mounts which used to take ~30sec and balloon systemd up to ~1GB RSS now completes in about 8sec total, systemd accumulated time remains low and its RSS is currently 36MB. dbus itself doesn't even show up any more (~1sec accumulated cpu time after several cycles of mount/umount.)
And again, the kernel interface of /proc/self/mountinfo forces us to do some time O(n^2) things here, so we cannot really fix this without kernel support to scale better than that: when you mount a thousand mounts, then this will in the worst case generate a thousand POLLURG events to systemd, which will then read in the worst case a thousand entries from /proc/self/mountinfo, each time. The kernel interface would need have to tell us about invidiual mounts coming/going if we want this to scale better than O(n^2) in the long run...
Right; but the constant is low both for the read and the match, so I don't think this is a huge problem, and it's certainly not urgent. The dbus O(n^2) was the dominating factor and that seems solved here.