summaryrefslogtreecommitdiff
path: root/tools/lib/python
diff options
context:
space:
mode:
authorShai Barack <shayba@google.com>2026-09-10 18:56:14 +0000
committerMiklos Szeredi <mszeredi@redhat.com>2026-10-16 12:17:08 +0200
commit3cfce590fe18c2ed77d191dbb7086542c446880f (patch)
tree467e7b21f6c3aa947df1aa4fc8ed7bfcd25bc857 /tools/lib/python
parente64a46aefc012facbe6114a460e6faeeb4d28b12 (diff)
fuse: Forward vfs_fadvise to backing_file in passthrough mode
When an application invokes posix_fadvise(..., POSIX_FADV_DONTNEED) or other fadvise advice on a FUSE passthrough file descriptor, the VFS currently only executes generic_fadvise() on the upper FUSE inode mapping. Because FUSE passthrough does not forward fadvise operations to the underlying backing file, pages residing in the lower filesystem's pagecache remain resident in memory. During media-heavy workloads (such as image thumbnail generation or streaming), single-access file data accumulates in the inactive pagecache of the lower filesystem. Under memory pressure, the kernel retains these stale media pages and instead evicts active executable pages from running processes, leading to severe direct reclaim latency spikes. Architecturally, Linux VFS supports filesystem-specific fadvise delegation via the .fadvise hook in struct file_operations. Implement fuse_file_fadvise() in fs/fuse/file.c and register it in fuse_file_operations. When passthrough is active on a fuse_file, fuse_file_fadvise() forwards the vfs_fadvise() call to the lower backing_file under the opened credentials, allowing POSIX_FADV_DONTNEED to cleanly invalidate the physical backing filesystem pagecache. Signed-off-by: Shai Barack <shayba@google.com> Cc: Miklos Szeredi <miklos@szeredi.hu> Cc: Amir Goldstein <amir73il@gmail.com> Cc: Bernd Schubert <bschubert@ddn.com> Cc: Sandeep Dhavale <dhavale@google.com> Cc: Akilesh Kailash <akailash@google.com> Cc: Suren Baghdasaryan <surenb@google.com> Cc: fuse-devel@lists.linux.dev Cc: linux-fsdevel@vger.kernel.org Cc: linux-kernel@vger.kernel.org Reviewed-by: T.J. Mercier <tjmercier@google.com> Reviewed-by: Amir Goldstein <amir73il@gmail.com> Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
Diffstat (limited to 'tools/lib/python')
0 files changed, 0 insertions, 0 deletions