You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Three independently measurable improvements, each with an integration
test that the test-suite harness discovers automatically:
- Request sizes up to 1 MiB: init sets conn->max_write (tunable with
-o max_write=N) and libfuse >= 3.6 negotiates the matching max_pages
with the kernel. Measured 1 MiB writes and O_DIRECT reads reaching
the daemon, against 128 KiB with fuse2 big_writes; one request now
carries two default-size tape blocks.
- -o direct_io: sets FOPEN_DIRECT_IO on every open, so reads and
writes bypass the kernel page cache and arrive at the application's
I/O size. Streaming large archives no longer fills the page cache
and data is not buffered twice; mmap does not work on files opened
this way and small-block applications lose readahead, so the option
is off by default. When fuse_file_info has parallel_direct_writes it
is set as well; the field appeared in libfuse 3.15, so it is
detected at configure time instead of via version checks (which
broke on ubuntu-24.04's libfuse 3.14).
- readdirplus: ltfs_fsops_readdir_attr hands each entry's attributes
to the filler straight from the in-memory index, and init clears
FUSE_CAP_READDIRPLUS_AUTO so every listing chunk carries attributes.
ls -l over 100 files needs 2 getattr requests instead of 102. The
kernel prefill is only effective with libfuse >= 3.17, so the test
asserts the suppression conditionally.
0 commit comments