[Bug 271065] Kernel FUSE limits read() size by 64k/128k
- In reply to: bugzilla-noreply_a_freebsd.org: "[Bug 271065] Kernel FUSE limits read() size by 64k/128k"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 25 Apr 2023 15:27:37 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=271065 --- Comment #1 from Alan Somers <asomers@FreeBSD.org> --- If your userland program opens the file with O_DIRECT and tries to do large reads, what size of read does the server see? That should bypass the cache. I'm not saying that it's a permanent solution, but it might be a good experiment. The clustering and readahead code happens above the file system, up in the VFS. It enters fuse in fuse_vnop_strategy. I'm a little rusty in that area, but I think that you'll want to tweak settings so as to maximize the value of bp->b_bcount that the VFS sends in VOP_STRATEGY, rather than try to increase the size that we read from within there. You could try setting F_READAHEAD with fcntl, though I think it will still be limited by maxphys. By doing that, I'm able to get sizes of 1 MB in VOP_STRATEGY. And you should certainly be setting -o async_read in the sshfs process. If you're planning to change the clustering code itself, you should definitely talk to mckusick. -- You are receiving this mail because: You are the assignee for the bug.