Query regarding FUSE passthrough not using kernel page cache thus causing performance regression

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello Team,

I have been experimenting with the FUSE
passthrough(https://docs.kernel.org/filesystems/fuse-passthrough.html)
feature. I have a question regarding its interaction with the kernel
page cache.

During my evaluation, I observed a performance degradation when using
passthrough. My understanding is that the I/O on the passthrough
backing file descriptor bypasses the kernel page cache and goes
directly to disk. This is significantly less performant for my use
case compared to cached I/O.

While looking into the kernel source, I found a couple of references
that seem to confirm that bypassing the page cache is intentional.

1. The FUSE driver appears to explicitly disallow the FOPEN_KEEP_CACHE
flag for passthrough:
https://github.com/torvalds/linux/blob/66701750d5565c574af42bef0b789ce0203e3071/fs/fuse/iomode.c#L162

2. The passthrough feature uses the fuse_file_uncached_io_open
function. This function returns an ETXTBSY error if any cached file
handles for the inode are already open:
https://github.com/torvalds/linux/blob/66701750d5565c574af42bef0b789ce0203e3071/fs/fuse/iomode.c#L97

Could you please share the reasoning behind this design choice?
Additionally, would it be feasible to implement support for using the
page cache with passthrough in the future?

Thank you for your time and any insights you can provide.

Best regards,
Ashmeen




[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [NTFS 3]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [NTFS 3]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux