Thread (117 messages) 117 messages, 14 authors, 2020-03-07

Re: [PATCH 00/17] VFS: Filesystem information and notifications [ver #17]

From: Miklos Szeredi <miklos@szeredi.hu>
Date: 2020-03-03 10:32:51
Also in: linux-fsdevel, lkml

On Tue, Mar 3, 2020 at 11:22 AM Steven Whitehouse [off-list ref] wrote:
Hi,

On 03/03/2020 09:48, Miklos Szeredi wrote:
quoted
On Tue, Mar 3, 2020 at 10:26 AM Miklos Szeredi [off-list ref] wrote:
quoted
On Tue, Mar 3, 2020 at 10:13 AM David Howells [off-list ref] wrote:
quoted
Miklos Szeredi [off-list ref] wrote:
quoted
I'm doing a patch.   Let's see how it fares in the face of all these
preconceptions.
Don't forget the efficiency criterion.  One reason for going with fsinfo(2) is
that scanning /proc/mounts when there are a lot of mounts in the system is
slow (not to mention the global lock that is held during the read).
BTW, I do feel that there's room for improvement in userspace code as
well.  Even quite big mount table could be scanned for *changes* very
efficiently.  l.e. cache previous contents of /proc/self/mountinfo and
compare with new contents, line-by-line.  Only need to parse the
changed/added/removed lines.

Also it would be pretty easy to throttle the number of updates so
systemd et al. wouldn't hog the system with unnecessary processing.

Thanks,
Miklos
At least having patches to compare would allow us to look at the
performance here and gain some numbers, which would be helpful to frame
the discussions. However I'm not seeing how it would be easy to throttle
updates... they occur at whatever rate they are generated and this can
be fairly high. Also I'm not sure that I follow how the notifications
and the dumping of the whole table are synchronized in this case, either.
What I meant is optimizing current userspace without additional kernel
infrastructure.   Since currently there's only the monolithic
/proc/self/mountinfo, it's reasonable that if the rate of change is
very high, then we don't re-read this table on every change, only
within a reasonable time limit (e.g. 1s) to provide timely updates.
Re-reading the table on every change would (does?) slow down the
system so that the actual updates would even be slower, so throttling
in this case very much  makes sense.

Once we have per-mount information from the kernel, throttling updates
probably does not make sense.

Thanks,
Miklos
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help