svn commit: r337165 - head/sys/fs/fuse

Warner Losh imp at bsdimp.com
Sat Aug 4 22:46:06 UTC 2018


On Thu, Aug 2, 2018 at 1:25 PM, Conrad Meyer <cem at freebsd.org> wrote:

> 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;
>

Why DFLTPHYS instead of MAXPHYS?

DFLTPHYS defaults to 64k, while MAXPHYS is 128k. Or do you expect people
that want different behavior to raise both?

Warner


More information about the svn-src-head mailing list