Subject: Re: Disk scheduling policy (Re: NEW_BUFQ_STRATEGY)
To: Jason Thorpe <thorpej@wasabisystems.com>
From: Thor Lancelot Simon <tls@rek.tjls.com>
List: tech-kern
Date: 12/01/2003 19:56:06
On Mon, Dec 01, 2003 at 04:29:38PM -0800, Jason Thorpe wrote:
> 
> This is why I suggested creating an uber-buf that contained a list of 
> sub-bufs.  The uber-buf would contain the starting block # and the 
> overall length, and the sub-bufs would describe the individual 
> transfers that were gathered into the uber-buf.  You could even use the 
> normal bufq linkage (or a TAILQ union over it) to hook the sub-bufs 
> into the uber-buf.

Unfortunately, this requires modifying every disk driver to handle
uber-bufs instead of bufs, no?  It's highly similar to the change
that BSDI made long ago to chain buffers together through a pointer
in struct buf -- we could have whacked pagemove() much earlier if
we picked up that change, but we didn't because of the changes it
would have required in all of the disk drivers.

-- 
 Thor Lancelot Simon	                                      tls@rek.tjls.com
   But as he knew no bad language, he had called him all the names of common
 objects that he could think of, and had screamed: "You lamp!  You towel!  You
 plate!" and so on.              --Sigmund Freud