NFS client/buffer cache deadlock

Marc Olzheim marcolz at stack.nl
Wed Apr 27 01:17:48 PDT 2005


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.

> > Btw. running the writev program with 20 * 100 MB on UFS on a 512MB
> > FreeBSD 6-CURRENT system practicly locks the filesystem down _and_
> > causes all processes to be swapped out in favor of the buffer cache.
> > 'top' however, doesnt' show a rise in BUF usage.
> > 
> > On FreeBSD 4.x, the system performance as usual during the writev to
> > UFS.
> 
> That's certainly not very optimal.  I don't know anything about it, sorry.

No problem. I just thought that they might be related (this is with a
single writev() as well).

Marc
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-stable/attachments/20050427/09e6c02f/attachment.bin


More information about the freebsd-stable mailing list