NFS client/buffer cache deadlock
Brian Fundakowski Feldman
green at freebsd.org
Wed Apr 27 09:08:58 PDT 2005
On Wed, Apr 27, 2005 at 10:17:46AM +0200, Marc Olzheim wrote:
> On Tue, Apr 26, 2005 at 03:36:02PM -0400, Brian Fundakowski Feldman wrote:
> > I'm still guessing that for whatever reason your writes on the FreeBSD
> > 4.x NFS client are not using NFSv3/transactions. The second method
> > I just now implemented; it works fine except for being slower since
> > all data is acknowledged synchronously. Are you using one writev()
> > instead of many writes so you can atomically write a large sparse data
> > structure? If so, you will probably just have to cope with the lower
> > performance than for reasonably-sized writes. If not: why are you
> > trying to write it atomically? Just use multiple normal-sized write()
> > calls.
>
> Yes, a single writev(). Just like in the kern/79207 PR.
>
> It doesn't have to be superfast (why would I use NFS otherwise), just as
> long as it's threadsafe / atomic.
Alright, this will do synchronous, instead of short, writes (also,
of course, not deadlock the system) if you are trying to use an
excessively large buffer size.
<http://green.homeunix.org/~green/nfs_client.deadlock.patch>
<http://green.homeunix.org/~green/nfs_client.deadlock.HEAD.patch>
--
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