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.