Re: [RFC PATCH] getting misc stats/attributes via xattr API
From: Miklos Szeredi <miklos@szeredi.hu>
Date: 2022-05-10 08:06:40
Also in:
linux-fsdevel, linux-man, linux-security-module, lkml
On Tue, 10 May 2022 at 06:27, Ian Kent [off-list ref] wrote:
quoted
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.
quoted
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 million notification messages (with high likelyhood of queue overflow), but in the end the mount table will end up being the same... Thanks, Miklos