Bruce,
Sorry for the delayed reply, only just now got some time to come
back to this and test.
And in fairness, it's not like it's broken out of the box. I'm
complaining about single-client read speeds being 600MB/s with NFS
v3/v4.0 but "only" ~440MB/s with NFS v4.1/v4.2.
Out of curiosity, is your bandwidth limited by disk at this point? If
not it might be interesting to compare with recent upstream.
Yeah, the 600MB/s is disk limited in this case.
Yep. Here's what I've got:
Looks good. Built a custom kernel with that patch and tested it
on the NFS server. As before, the client set 'ca_maxrequests' to 64, but
now the server replies with 31 (instead of 10) so the session is
established with 31[*] slots. NFS v4.1/4.2 performance is now more or
less equivalent to that of NFS v3/4.0 in my tests.
Hope this patch lands in a future RHEL 7 kernel. :-)
Thanks for your time and help,
Chris
[*] 31 instead of 32 (NFSD_CACHE_SIZE_SLOTS_PER_SESSION) because
'slotsize' (from 'slot_bytes()') ends up being slightly larger than
2048. (NFSD_SLOT_CACHE_SIZE)