[PATCH] cifs: improve read performance for page size 64KB & cache=strict & vers=2.1+

Jones Syue jonessyue at qnap.com
Mon Apr 27 02:49:37 UTC 2020


> > And if anyone figures out how to configure an x86_64 Linux to use
> > PAGE_SIZE of 64K or larger let me know...
> I am using physical platform with arm cpu and aarch64 toolchain,
> perhaps try qemu-system-aarch64 later.

For reference using qemu-system-aarch64 + linux-5.6.4 + 64KB page to test
cifs read, this patch can improve cifs read performance:
with patch: read throughput 39 MB/s, SMB read IO size 4MB
/ # dd if=/mnt/cifs/1G.img of=/dev/null bs=4M count=256
256+0 records in
256+0 records out
1073741824 bytes (1.0GB) copied, 25.982352 seconds, 39.4MB/s
[~] # strace -p 23934
sendfile(38, 32, [297795584] => [301989888], 4194304) = 4194304

without patch: read throughput 18 MB/s, SMB read IO size 16KB
/ # dd if=/mnt/cifs/1G.img of=/dev/null bs=4M count=256G
256+0 records in
256+0 records out
1073741824 bytes (1.0GB) copied, 54.367686 seconds, 18.8MB/s
[~] <0> strace -p 15786
sendfile(38, 32, [452984832] => [453001216], 16384) = 16384

This link is a easy way to compile aarch64 linux kernel with page size 64KB
, a simple rootfs with busybox, and run it on qemu-system-aarch64:
https://docs.google.com/document/d/1NSVd-dib_asugCZHmZgohLZXHxV25ftzYtUDSppY3hA/edit?usp=sharing

--
Regards,
Jones Syue | 薛懷宗
QNAP Systems, Inc.



More information about the samba-technical mailing list