On Wed, 2020-04-01 at 18:40 +0200, Miklos Szeredi wrote: > On Wed, Apr 1, 2020 at 6:07 PM David Howells <dhowells@xxxxxxxxxx> > wrote: > > Miklos Szeredi <miklos@xxxxxxxxxx> wrote: > > > > > I've still not heard a convincing argument in favor of a syscall. > > > > From your own results, scanning 10000 mounts through mountfs and > > reading just > > two values from each is an order of magnitude slower without the > > effect of the > > dentry/inode caches. It gets faster on the second run because the > > mountfs > > dentries and inodes are cached - but at a cost of >205MiB of > > RAM. And it's > > *still* slower than fsinfo(). > > Already told you that we can just delete the dentry on dput_final, so > the memory argument is immaterial. > > And the speed argument also, because there's no use case where that > would make a difference. You keep bringing up the notification queue > overrun when watching a subtree, but that's going to be painful with > fsinfo(2) as well. If that's a relevant use case (not saying it's > true), might as well add a /mnt/MNT_ID/subtree_info (trivial again) > that contains all information for the subtree. Have fun implementing > that with fsinfo(2). Forgive me for not trawling through your patch to work this out but how does a poll on a path get what's needed to get mount info. Or, more specifically, how does one get what's needed to go directly to the place to get mount info. when something in the tree under the polled path changes (mount/umount). IIUC poll alone won't do subtree change monitoring? Don't get me wrong, neither the proc nor the fsinfo implementations deal with the notification storms that cause much of the problem we see now. IMHO that's a separate and very difficult problem in itself that can't even be considered until getting the information efficiently is resolved. Ian