DragonFly BSD
DragonFly commits List (threaded) for 2010-09
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

git: network - Fix a sleep/wakeup race in NFS (server), implement faster keepalives


From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxxxxx>
Date: Thu, 23 Sep 2010 22:43:19 -0700 (PDT)

commit 8fdd18a45661991db8beaf8faa358aa60df62153
Author: Matthew Dillon <dillon@apollo.backplane.com>
Date:   Thu Sep 23 22:36:08 2010 -0700

    network - Fix a sleep/wakeup race in NFS (server), implement faster keepalives
    
    * Fix a sleep/wakeup MP race in the NFS server where the server can receive
      data but fails to wakeup one of its nfsds.
    
    * Set a faster keepalive timeout for NFS client and server.  Currently
      75 seconds (instead of 2 hours).  This solves a problem when connectivity
      is lost with the server for long enough that the server kills the
      connection, or if the server fails while processing a nfs request
      from the client.
    
      If the client is stuck waiting for the reply it can wind up waiting
      for the entire keepalive period before recovering, even if connectivity
      with the server is re-established.  This way the client will proactively
      determine that the connection is dead within 75 seconds and re-establish
      it.
    
    * The value of the timeout is taken from net.inet.tcp.keepintvl
      (instead of net.inet.tcp.keepalive), which defaults to 75 seconds
      at the moment.

Summary of changes:
 sys/vfs/nfs/nfs_socket.c   |   15 +++++++++++++--
 sys/vfs/nfs/nfs_syscalls.c |    8 ++++++++
 2 files changed, 21 insertions(+), 2 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/8fdd18a45661991db8beaf8faa358aa60df62153


-- 
DragonFly BSD source repository



[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]