On Wed, Jul 2, 2025 at 2:59 PM Miklos Szeredi <miklos@xxxxxxxxxx> wrote: > > On Wed, 2 Jul 2025 at 14:27, Ashmeen Kaur <ashmeen@xxxxxxxxxx> wrote: > > > > 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. > > Passthrough opens the backing file with the same flags as the fuse > file was opened. If it had O_DIRECT, then the backing file will be > opened with O_DIRECT. > > If your fuse server implementation removed O_DIRECT from the open > flags before opening the backing file, then this can indeed be a > regression. Otherwise there is probably some other issue. I am confused by this statement about O_DIRECT. I don't think that it was implied that O_DIRECT was used in this test. The statement: "My understanding is that the I/O on the passthrough backing file descriptor bypasses the kernel page cache and goes directly to disk." Is not accurate. The accurate statement is: "I/O on the passthrough backing file descriptor bypasses the *FUSE* page cache and goes directly to *the backing file*." NOT *directly to disk. So if you are doing passthrough to XFS file for example, and the application is doing buffered read, you get buffered read from XFS and utilize the page cache of XFS. That's the reason for disallowing FOPEN_KEEP_CACHE because the FUSE page cache is not utilized. So the main questions are which backing filesystem are you doing passthrough to? and which mode is the test opening the file? Thanks, Amir.