NFS client/buffer cache deadlock
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()
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).
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
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