Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 15 Mar 2005 19:33:04 -0800 (PST)
From:      Don Lewis <truckman@FreeBSD.org>
To:        jroberson@chesapeake.net
Cc:        arch@FreeBSD.org
Subject:   Re: Freeing vnodes.
Message-ID:  <200503160333.j2G3X4sP061855@gw.catspoiler.org>
In-Reply-To: <20050315195525.F20708@mail.chesapeake.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On 15 Mar, Jeff Roberson wrote:
> On Tue, 15 Mar 2005, Matthew Dillon wrote:

>>     syncer:	  I've always wanted to rewrite the syncer to be per-mount
>> 		  or per-physical-device so it could sync out to multiple
>> 		  physical devices simultaniously.

It would be nice to do this on a per-physical-device basis to avoid
multiple threads contending for the same device, but this looks like it
would be difficult due to the way that devices can be sliced, diced, and
merged.

It would also be nice if buf_daemon was a per-device or per-mount.  I
haven't tested it lately, but in the past I was able to deadlock
buf_daemon by loopback NFS mounting a local file system and doing a lot
of write activity (iozone works well for this).

> The syncer is kind of bogus anyway, because it mostly just destroys the
> buf daemon's delayed writes by forcing it all out at once.  It does
> redundant work, except for updating inodes, which should be all it really
> does.

The syncer also sets an upper bound on the time that file modifications
go unwritten to disk.  Buf_daemon sleeps while numdirtybuffers <=
lodirtybuffers, so a file updated on a quiet system would not be written
to disk for an arbitrarily long time without the syncer.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200503160333.j2G3X4sP061855>