I think you’re both getting TCP and UDP confused - the default rsize and wsize are different for TCP and UDP.
Don’t confuse hardware accelerated checksum and other functions that modern networks cards do in hardware with the actual TCP stack itself. Put a standard network card in any Linux box and it is still the kernel that is generating TCP acks, and that takes CPU power to do so.
Heh!
Yes, a “standard” network card in any “Linux” box
As I said, slightly different backgrounds . Last system software Unix work I did was some porting to a Fujitsu box running UXP/M - liquid nitrogen cooled everything, 256bit wide data bus, … NIC hardware acceleration was not limited to calculating a few checksums .
I think you’re both getting TCP and UDP confused - the default rsize and wsize are different for TCP and UDP.
No, not getting them confused …
Yes, the sizes are different. TCP, the Debian default is 1M (NFSv4); UDP, it’s 32K (maximum allowed under NFSv3; this doesn’t apply to NFSv4 as that only supports TCP). I thought it was something like 256K for NFSv4, but it’s not; confirming by an actual test - E.g.:
root@Tip:~# mkdir /var/tmp/foo
root@Tip:~# touch /var/tmp/foo/bar
root@Tip:~#
root@Tip:~#
root@Tip:~# echo '/var/tmp/foo (rw)’ >> /etc/exports
root@Tip:~# exportfs -av
exportfs: /etc/exports [1]: Neither ‘subtree_check’ or ‘no_subtree_check’ specified for export ":/var/tmp/foo".
Assuming default behaviour (‘no_subtree_check’).
NOTE: this default has changed since nfs-utils version 1.0.xexporting *:/var/tmp/foo
root@Tip:~# mount -t nfs -o ro,proto=udp,nfsvers=3 tip:/var/tmp/foo /mnt
root@Tip:~# nfsstat -m
/mnt from tip:/var/tmp/foo
Flags: ro,relatime,vers=3,rsize=32768,wsize=32768,namlen=255,hard,proto=udp,timeo=11,retrans=3,sec=sys,mountaddr=127.0.1.1,mountvers=3,mountport=34173,mountproto=udp,local_lock=none,addr=127.0.1.1root@Tip:~#
root@Tip:~#
root@Tip:~#
root@Tip:~# uname -a
Linux Tip 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt20-1+deb8u3 (2016-01-17) x86_64 GNU/Linux
root@Tip:~#
(see earlier in the thread for defaults using NFSv4).
That’s exactly what I’d expect to see and is in line with (up to date ) NFS documentation.
@popcornmix has said no-one at “rPi” would have changed it to 1K (and as I mentioned earlier, I wouldn’t hold it against anyone had they have done anyway - general purpose port, general purpose hardware, …).
I’m not disputing your having seen 1K as a default - I’m sure you’re perfectly capable of establishing these things. I’m just curious as to why you were seeing a 1K default when that isn’t the Debian default (for TCP or UDP based NFS of any sensible version) and it wasn’t changed by the porting team.
Just curiosity, that’s all.