-
Notifications
You must be signed in to change notification settings - Fork 27
Open
Labels
enhancementNew feature or requestNew feature or request
Description
jacobsa/fuse implements fuse 7.12. Current Linux kernels are at 7.31. Here are a few features which we should look into to possibly improve performance:
- enable parallel dirops (
FUSE_PARALLEL_DIROPS) - permanent caching with invalidation: torvalds/linux@3b463ae (WIP in the
notifybranch) - increase max_pages: torvalds/linux@5da784c
- symlink caching: torvalds/linux@5571f1e
-
readdir caching: torvalds/linux@6433b89(see next item) - no opendir: torvalds/linux@d9a9ea9 (implicitly turns on readdir caching)
- no open: torvalds/linux@7678ac5 (implicitly turns on page cache)
- return nil with child inode == 0 instead of ENOENT to cache ENOENT: https://github.com/torvalds/linux/blob/2019fc96af228b412bdb2e8e0ad4b1fc12046a51/fs/fuse/dir.c#L353
- read from multiple file descriptors? https://john-millikin.com/the-fuse-protocol#multi-threading
We should also figure out a representative benchmark for root file system performance.
We can use bpftrace to measure the number of FUSE calls during builds:
sudo bpftrace -e 'kprobe:fuse_simple_request { @[kstack(perf)] = count(); }'
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request