NFS client/buffer cache deadlock

Brian Fundakowski Feldman green at freebsd.org
Wed Apr 27 12:41:45 PDT 2005


On Wed, Apr 27, 2005 at 09:19:38PM +0200, Marc Olzheim wrote:
> On Wed, Apr 27, 2005 at 03:06:27PM -0400, Brian Fundakowski Feldman wrote:
> > > How can I tell whether it uses transactions ?
> > 
> > I am not sure -- it should with NFSv3 though.  Does "mount -v" tell
> > you anything more detailed?  I suppose that nfsstat may also be used
> > -- the "commit" count should only increase when it does an NFSv3
> > commit operation.
> > 
> > > The NFS server is mounted with:
> > > 
> > > mount_nfs -c -P -a 0 -r 8192 -w 8192 -i -o rw,noatime,nointr host:/path /nfs/host/path
> > 
> > So the only really visible difference is 6 nfsiod versus 20 nfsiod.  I
> > think if you increased the nfsiod on that 4.x box to something much
> > higher it would deadlock the same, then, assuming that all else is
> > equal.
> 
> Well, I took on that challenge and although it seems that the machine
> completely hangs itself up for a while, it snaps out of it after it is
> done.
> 
> tehethereal tells me it is NFSv3, and the commits increase:
> [....]

Alright, thanks for testing.  So the same bug exists in 4.x but may
not actually deadlock the buffer cache in the same circumstances.
If you feel like playing with it anymore, I would expect a certain
write block size, maximum nfsiod, and total file size being written
wouldn't be too hard to find that would deadlock 4.x, too.

-- 
Brian Fundakowski Feldman                           \'[ FreeBSD ]''''''''''\
  <> green at FreeBSD.org                               \  The Power to Serve! \
 Opinions expressed are my own.                       \,,,,,,,,,,,,,,,,,,,,,,\


More information about the freebsd-stable mailing list