Re: [PATCH] fs: Do not check if there is a fsnotify watcher on pseudo inodes

From: Amir Goldstein
Date: Fri Jun 12 2020 - 05:52:45 EST


On Fri, Jun 12, 2020 at 12:26 PM Mel Gorman <mgorman@xxxxxxxxxxxxxxxxxxx> wrote:
>
> The kernel uses internal mounts for a number of purposes including pipes.
> On every vfs_write regardless of filesystem, fsnotify_modify() is called
> to notify of any changes which incurs a small amount of overhead in fsnotify
> even when there are no watchers.
>
> A patch is pending that reduces, but does not eliminte, the overhead
> of fsnotify but for the internal mounts, even the small overhead is
> unnecessary. The user API is based on the pathname and a dirfd and proc
> is the only visible path for inodes on an internal mount. Proc does not
> have the same pathname as the internal entry so even if fatrace is used
> on /proc, no events trigger for the /proc/X/fd/ files.
>

This looks like a good direction and I was going to suggest that as well.
However, I am confused by the use of terminology "internal mount".
The patch does not do anything dealing with "internal mount".
If alloc_file_pseudo() is only called for filesystems mounted as
internal mounts,
please include this analysis in commit message.
In any case, not every file of internal mount is allocated with
alloc_file_pseudo(),
right? So maybe it would be better to list all users of alloc_file_pseudo()
and say that they all should be opted out of fsnotify, without mentioning
"internal mount"?

Thanks,
Amir.