Skip to content

Conversation

@andrey-utkin
Copy link

@andrey-utkin andrey-utkin commented Oct 7, 2025

This changeset assumes this feature is merged: cvmfs/cvmfs#4006

vvolkl added a commit to cvmfs/cvmfs that referenced this pull request Nov 27, 2025
Passthrough is a recent FUSE feature (kernel 6.17.0+, libfuse 3.17+)
enabling bypass of userspace on all the read requests. When the FUSE
daemon provides a "backing file descriptor" to FUSE on "open" request,
the kernel reads directly from it without calling into the FUSE daemon.

This is a win for performance. The test supplied demonstrates
measurable speedup:

```
+ dd status=progress bs=512 if=/cvmfs/test.repo.dumbdumb/big.bin of=/dev/null
10485760 bytes (10 MB, 10 MiB) copied, 3.35429 s, 3.1 MB/s
+ dd status=progress bs=512 if=/cvmfs/test.repo.passthru/big.bin of=/dev/null
10485760 bytes (10 MB, 10 MiB) copied, 0.073326 s, 143 MB/s
```

```
+ pushd /cvmfs/test.repo.dumbdumb
+ parallel -N0 'sha1sum --check --status CHECKSUMS' ::: {1..100}
real    0m3.440s
user    0m4.782s
sys     0m3.345s
+ pushd /cvmfs/test.repo.passthru
+ parallel -N0 'sha1sum --check --status CHECKSUMS' ::: {1..100}
real    0m1.221s
user    0m3.904s
sys     0m1.709s
```

Enabling new functionality requires
* building with sufficiently recent libfuse to have FUSE_CAP_PASSTHROUGH
* running with similarly recent enough libfuse
* running on Linux kernel 6.17.0 or newer
* specifying mount option fuse_passthrough (or fuse_passthru)


Related documentation update:
cvmfs/doc-cvmfs#254

---------

Co-authored-by: Valentin Volkl <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant