Subject: Re: Page daemon behavior part N
To: None <tech-kern@netbsd.org>
From: Thor Lancelot Simon <tls@rek.tjls.com>
List: tech-kern
Date: 01/25/2001 15:04:41
On Thu, Jan 25, 2001 at 06:41:28PM +0000, Charles M. Hannum wrote:
> 
> Interestingly, if you go further back, there was a hack to explicitly
> lower the caching priority of full blocks written by FFS, using B_AGE.
> This would have had the effect of causing writebacks to happen faster,
> as well as being a slightly different way of accomplish the
> `immediately inactivate it' hack.

I have a rather different take on this problem: I think the right
solution is to try to keep the I/O subsystem from going "completely idle"
(Obviously we need a metric of "idleness" here that may not be quite any
of what we have available now) by scheduling optional-but-beneficial I/O
such as buffer writebacks, RAID parity updates, etc. when nothing else
is using the disk.  For a totally off-the-wall idea, what about whacking 
some kind of call to accomplish this into disksort()?

To flesh this out a bit further, I'd think we'd want to flag this kind
of I/O request such that it could be deferred if "real" I/O came in
while it was still in the queue, to avoid buzzing the heads all over
the disk and slowing down new I/O because of the backlog of "optional"
stuff; Irix uses two queues for a similar purpose to this, with one
having priority over the other when commands are actually issued.

-- 
Thor Lancelot Simon	                                      tls@rek.tjls.com
    And now he couldn't remember when this passion had flown, leaving him so
  foolish and bewildered and astray: can any man?
						   William Styron