[Bug 230260] [FUSE] [PERFORMANCE]: Performance issue (I/O block size)

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Wed Feb 20 14:25:38 UTC 2019


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=230260

--- Comment #11 from Kenneth D. Merry <ken at FreeBSD.org> ---
Yes, this is inside an LTFS mount.  Reading a just-written file does result in
only 64K getting read and an unexpected EOF.  Here is a dd read of the same
file I created in the previous step.

The only difference between this and the previous version is that I built the
fuse.ko module with change 337165 reverted:

{sm4u-12:/root:!:0} cd /mnt
{sm4u-12:/mnt:!:0} ls -la
total 1048578
drwxrwxrwx   2 root  wheel           0 Feb 19 22:20 .
drwxr-xr-x  30 root  wheel          35 Jan 30 18:45 ..
-rwxrwxrwx   1 root  wheel  1073741824 Feb 19 22:20 foo
{sm4u-12:/mnt:!:0} dd if=foo of=/dev/null bs=1m
1024+0 records in
1024+0 records out
1073741824 bytes transferred in 11.281752 secs (95175096 bytes/sec)

So, normal result, no problems.  What this tells me is that somehow, changing
f_iosize from 4K to DFLTPHYS (which is set to 512K on this particular system)
messes up reads (but not writes) for LTFS.

In looking at the LTFS FUSE read code, I don't see any hardcoding of the I/O
size:

https://github.com/LinearTapeFileSystem/ltfs/blob/master/src/ltfs_fuse.c

So, perhaps there is a place in the FUSE libraries that is hard-coding the size
to 4K?

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-fs mailing list