Increase the default socket buffer for NFS to deal with linux bugs and to
authorMatthew Dillon <dillon@dragonflybsd.org>
Mon, 8 Mar 2004 23:52:53 +0000 (23:52 +0000)
committerMatthew Dillon <dillon@dragonflybsd.org>
Mon, 8 Mar 2004 23:52:53 +0000 (23:52 +0000)
commite9855d6b54147025cc775ee187d98826205a5344
tree754eb3e6885be86bb9930cd1eb8eca2c2370f5cb
parentcaed405144c70958347e03baf932ead636ee78ba
Increase the default socket buffer for NFS to deal with linux bugs and to
improve performance.   The default nfs socket buffer is now 65535 bytes,
settable with a sysctl (vfs.nfs.soreserve).

It is my belief that when large data block sizes (32K) are negotiated,
the larger socket buff should improve read-ahead performance and reduce
nfs socket buffer lock contention that occurs with multiple nfsd's.  I
was able to do some testing over GigE and it did seem to help, but problems
with one of the machines made the tests less then reliable.

Credits: Richard Sharpe originally encountered issues with linux NFS
clients that were traced to linux doing a bad job in its delayed-ack code.
David Rhodus created an initial patch which I used as a partial basis for
this commit (circa October 2003).
sys/sys/socketvar.h
sys/vfs/nfs/nfs_syscalls.c
sys/vfs/nfs/nfsproto.h