Vitaliy Filippov
84920d11dd
You can now run `./readbenchfs --mount_point dir --vectored` and then `dd if=dir/test of=/dev/null iflag=direct bs=1M status=progress` to test vectored read speed. Results from my laptop (Linux 5.10): 1 core (GOMAXPROCS=1): - Before vectored read patch: 2.1 GB/s - Non-vectored read after vectored read patch: 2.1 GB/s - Vectored read: 2.8 GB/s All cores: - Before vectored read patch: 3.0 GB/s - Non-vectored read after vectored read patch: 3.3 GB/s - Vectored read: 5.9 GB/s |
||
---|---|---|
.github/workflows | ||
fsutil | ||
fuseops | ||
fusetesting | ||
fuseutil | ||
internal | ||
samples | ||
.gitignore | ||
LICENSE | ||
README.md | ||
connection.go | ||
conversions.go | ||
debug.go | ||
doc.go | ||
errors.go | ||
freelists.go | ||
go.mod | ||
go.sum | ||
mount.go | ||
mount_config.go | ||
mount_darwin.go | ||
mount_linux.go | ||
mount_test.go | ||
mounted_file_system.go | ||
ops.go | ||
unmount.go | ||
unmount_linux.go | ||
unmount_std.go | ||
writev.go |
README.md
This package allows for writing and mounting user-space file systems from Go. Install it as follows:
go get -u github.com/jacobsa/fuse
Afterward, see the documentation for the following three packages:
-
Package fuse provides support for mounting a new file system and reading requests from the kernel.
-
Package fuseops enumerates the supported requests from the kernel, and provides documentation on their semantics.
-
Package fuseutil, in particular the
FileSystem
interface, provides a convenient way to create a file system type and export it to the kernel viafuse.Mount
.
Make sure to also see the sub-packages of the samples package for examples and tests.
This package owes its inspiration and most of its kernel-related code to bazil.org/fuse.