On Tue, 10 May 2022 at 10:06, Miklos Szeredi <miklos@xxxxxxxxxx> wrote: > > On Tue, 10 May 2022 at 06:27, Ian Kent <raven@xxxxxxxxxx> wrote: > > > > Was there ever a test patch for systemd using fsinfo(2)? I think > > > not. > > > > Mmm ... I'm hurt you didn't pay any attention to what I did on this > > during the original fsinfo() discussions. > > I can't find anything related to this in my mailbox. Maybe you > mentioned it at some point, but I have not been involved with the > actual systemd changes. So not meant to belittle your work at all. > > > > Until systemd people start to reengineer the mount handing to allow > > > for retrieving a single mount instead of the complete mount table we > > > will never know where the performance bottleneck lies. > > > > We didn't need the systemd people to do this only review and contribute > > to the pr for the change and eventually merge it. > > > > What I did on this showed that using fsinfo() allone about halved the > > CPU overhead (from around 4 processes using about 80%) and once the > > mount notifications was added too it went down to well under 10% per > > process. The problem here was systemd is quite good at servicing events > > and reducing event processing overhead meant more events would then be > > processed. Utilizing the mount notifications queueing was the key to > > improving this and that was what I was about to work on at the end. > > > > But everything stopped before the work was complete. > > > > As I said above it's been a long time since I looked at the systemd > > work and it definitely was a WIP so "what you see is what you get" > > at https://github.com/raven-au/systemd/commits/. It looks like the > > place to look to get some idea of what was being done is branch > > notifications-devel or notifications-rfc-pr. Also note that this > > uses the libmount fsinfo() infrastrucure that was done by Karal Zak > > (and a tiny bit by me) at the time. > > Looks great as a first step. > > What do you mean by "Utilizing the mount notifications queueing"? > > Do you mean batching of notifications? I think that's a very > important issue: processing each individual notifcation may not make > sense when there are lots of them. For example, doing ceate > mount+remote mount in a loop a million times will result in two s/remote/remove/ > million notification messages (with high likelyhood of queue > overflow), but in the end the mount table will end up being the > same... > > Thanks, > Miklos