svn commit: r337165 - head/sys/fs/fuse
Conrad Meyer
cem at FreeBSD.org
Thu Aug 2 19:25:44 UTC 2018
Author: cem
Date: Thu Aug 2 19:25:43 2018
New Revision: 337165
URL: https://svnweb.freebsd.org/changeset/base/337165
Log:
FUSE: Bump maximum IO size to enable more performant operation
Various components restrict size of IO passed up to the userspace filesystem
based on the mount's f_iosize value. The previous default of PAGE_SIZE
is anemic, even for normal filesystems, but especially considering every
FUSE operation involves a kernel <-> userspace IPC upcall.
Bump to DFLTPHYS (currently 64kB) to match other FUSE implementations.
Anecdotally, Jakub reports IO read performance increased from 600 MB/s ->
2700 MB/s with a basic RAM-backed FUSE filesystem.
PR: 230260
Reported by: Peter (MooseFS) <freebsd AT moosefs.com>
Tested by: Jakub Kruszona-Zawadzki <acid AT moosefs.com>
MFC after: 3 days
Modified:
head/sys/fs/fuse/fuse_vfsops.c
Modified: head/sys/fs/fuse/fuse_vfsops.c
==============================================================================
--- head/sys/fs/fuse/fuse_vfsops.c Thu Aug 2 19:19:53 2018 (r337164)
+++ head/sys/fs/fuse/fuse_vfsops.c Thu Aug 2 19:25:43 2018 (r337165)
@@ -341,7 +341,7 @@ fuse_vfsop_mount(struct mount *mp)
mp->mnt_kern_flag |= MNTK_USES_BCACHE;
MNT_IUNLOCK(mp);
/* We need this here as this slot is used by getnewvnode() */
- mp->mnt_stat.f_iosize = PAGE_SIZE;
+ mp->mnt_stat.f_iosize = DFLTPHYS;
if (subtype) {
strlcat(mp->mnt_stat.f_fstypename, ".", MFSNAMELEN);
strlcat(mp->mnt_stat.f_fstypename, subtype, MFSNAMELEN);
More information about the svn-src-head
mailing list