Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 11 Oct 1996 03:15:44 -0700 (PDT)
From:      Doug Rabson <dfr>
To:        CVS-committers, cvs-all, cvs-sys
Subject:   cvs commit:  src/sys/nfs nfs_bio.c nfs_socket.c
Message-ID:  <199610111015.DAA05242@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
dfr         96/10/11 03:15:41

  Modified:    sys/nfs   nfs_bio.c nfs_socket.c
  Log:
  This fixes a problem with the nfs socket handling code which happens
  if a single process is performing a large number of requests (in this
  case writing a large file).  The writing process could monopolise the
  recieve lock and prevent any other processes from recieving their
  replies.
  
  It also adds a new sysctl variable 'vfs.nfs.dwrite' which controls the
  behaviour which originally pointed out the problem.  When a process
  writes to a file over NFS, it usually arranges for another process
  (the 'iod') to perform the request.  If no iods are available, then it
  turns the write into a 'delayed write' which is later picked up by the
  next iod to do a write request for that file.  This can cause that
  particular iod to do a disproportionate number of requests from a
  single process which can harm performance on some NFS servers.  The
  alternative is to perform the write synchronously in the context of
  the original writing process if no iod is avaiable for asynchronous
  writing.
  
  The 'delayed write' behaviour is selected when vfs.nfs.dwrite=1 and
  the non-delayed behaviour is selected when vfs.nfs.dwrite=0.  The
  default is vfs.nfs.dwrite=1; if many people tell me that performance
  is better if vfs.nfs.dwrite=0 then I will change the default.
  
  Submitted by:	Hidetoshi Shimokawa <simokawa@sat.t.u-tokyo.ac.jp>
  
  Revision  Changes    Path
  1.26      +13 -1     src/sys/nfs/nfs_bio.c
  1.18      +16 -6     src/sys/nfs/nfs_socket.c



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199610111015.DAA05242>