DragonFly-2.3.2.130.gcc7d050 master sys/vfs/nfs nfs.h nfs_bio.c nfs_iod.c nfs_socket.c nfs_syscalls.c nfs_vnops.c nfsm_subs.c nfsm_subs.h nfsmount.h

Matthew Dillon dillon at crater.dragonflybsd.org
Sat Jul 18 15:11:21 PDT 2009


commit cc7d050efbecc414ade969ceb3dacdfe64210a79
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Sat Jul 18 15:03:49 2009 -0700

    NFS - Implement async write BIO, greatly increase sockbuf limits, better rexmit
    
    * Write BIOs are now executed asynchronously.
    
    * Commit BIOs are now executed asynchronously.
    
    * Increase the sockbuf limit to around 2MBytes, which is what is needed
      to handle the burst writing a DragonFly client can do now when the
      kernel flushes its buffers (at least for a UDP socket).
    
    * Adjust the rexmit code.  Also detect duplicate packets received and
      adjust the SRTT up a little since no RTT is calculated when a timeout
      occurs.
    
    * NEW SYSCTLS:
    
      vfs.nfs.soreserve	- This parameter now overrides all other kernel and
    			  user parameters to set the NFS sockets limit.
    
      vfs.nfs.maxasyncbio	- This is set to the hard-coded maximum by default
    			  and may be reduced to accomodate insufficiently
    			  endowed remote servers.
    
    * NOTE ON UDP MOUNTS TO REMOTE SERVERS.  If the remote server does not have
      sufficient sockbuf space to receive a large burst of UDP packets performance
      will suffer greatly.  To allieviate this issue you can decrease
      vfs.nfs.maxasyncbio on the DragonFly client, or you can simply use a
      TCP mount.

Summary of changes:
 sys/vfs/nfs/nfs.h          |   20 +-
 sys/vfs/nfs/nfs_bio.c      |  615 ++++++++++++++++++++++++++++++--------------
 sys/vfs/nfs/nfs_iod.c      |    6 +
 sys/vfs/nfs/nfs_socket.c   |  103 +++++---
 sys/vfs/nfs/nfs_syscalls.c |   13 +-
 sys/vfs/nfs/nfs_vnops.c    |   28 ++-
 sys/vfs/nfs/nfsm_subs.c    |   76 ++++++-
 sys/vfs/nfs/nfsm_subs.h    |   11 +-
 sys/vfs/nfs/nfsmount.h     |    5 +-
 9 files changed, 614 insertions(+), 263 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/cc7d050efbecc414ade969ceb3dacdfe64210a79


-- 
DragonFly BSD source repository





More information about the Commits mailing list