github.com/Schaudge/grailbase@v0.0.0-20240223061707-44c758a471c0/file/internal/kernel/kernel.go (about) 1 package kernel 2 3 // MaxReadAhead configures the kernel's maximum readahead for file handles on this FUSE mount 4 // (via ConfigureMount) and our corresponding "trailing" buffer. 5 // 6 // Our sizingHandle implements Read operations for read-only fsctx.File objects that don't support 7 // random access or seeking. Generally this requires that the user reading such a file does so 8 // in-order. However, the kernel attempts to optimize i/o speed by reading ahead into the page cache 9 // and to do so it can issue concurrent reads for a few blocks ahead of the user's current position. 10 // We respond to such requests from our trailing buffer. 11 // TODO: Choose a value more carefully. This value was chosen fairly roughly based on some 12 // articles/discussion that suggested this was a kernel default. 13 const MaxReadAhead = 512 * 1024