Re: NFS client/buffer cache deadlock

From: Brian Fundakowski Feldman <green_at_freebsd.org>
Date: Wed, 20 Apr 2005 11:20:38 -0400
On Wed, Apr 20, 2005 at 04:38:42PM +0200, Marc Olzheim wrote:
> On Wed, Apr 20, 2005 at 10:24:48AM -0400, Brian Fundakowski Feldman wrote:
> > > It does and it seems to work.  The NFS performance drops considerably
> > > though, from 8/9 MByte/s to 3/4 on sequential reads for instance.
> > > 
> > > kern/79208 is fixed by this indeed, in that I get short writes (in case
> > > of my test server at 1802240+ bytes, so './writev 2 foo' fails...
> > 
> > Performance drops in what cases?
> 
> Hmm, seems only to happen in large sequential reads... It might just be
> the FreeBSD 4.6 NFS server that is the problem though. I've had more NFS
> troubles with it.

Reads should be totally unaffected...

> Btw.: I'm not sure write(),writev() and pwrite() are allowed to do short
> writes on regular files... ?

Our manpage is incorrect; POSIX states that they are (see earlier
e-mail).  There really is no alternative -- we simply can't build
an NFS transaction larger than our buffer cache can accomodate.
Note that short wries won't happen for normal buffer sizes, only
excessively large ones.  I really don't believe that writev() is meant
to be used so that you can write gigantic data structures in a single
transaction...

-- 
Brian Fundakowski Feldman                           \'[ FreeBSD ]''''''''''\
  <> green_at_FreeBSD.org                               \  The Power to Serve! \
 Opinions expressed are my own.                       \,,,,,,,,,,,,,,,,,,,,,,\
Received on Wed Apr 20 2005 - 13:22:27 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:32 UTC