Subject: Re: Disk scheduling policy (Re: NEW_BUFQ_STRATEGY)
To: Alfred Perlstein <>
From: Thor Lancelot Simon <>
List: tech-kern
Date: 12/01/2003 18:11:59
On Mon, Dec 01, 2003 at 03:04:58PM -0800, Alfred Perlstein wrote:
> * Jason Thorpe <> [031201 14:00] wrote:
> > 
> > On Dec 1, 2003, at 12:07 PM, Thor Lancelot Simon wrote:
> > 
> > >| In 6.5.8, the queues are split. Doing this permits queuing delayed 
> > >writes
> > >| into one queue, while synchronous writes and reads are entered into 
> > >another
> > >| queue. In 6.5.8 the disk driver will alternate between queues. This 
> > 
> > This is a pretty cool, and fairly simple, algorithm.  I bet it could be 
> > implemented as a back-end to the new bufq code pretty easily.
> If you keep the bufs on two queues, a combined queue and seperate
> queues you'll pay double the sorting cost, but only have to disrupt
> the elevator algorithm when you reach a tuneable threshold.

Matt Thomas suggested simply starting at whichever end of the other
queue is nearer the current head position, which is an interesting 
idea.  I was pondering zoning the disk, so you'd have multiple "queues"
on each side of the "delayed"/"normal" divide, and could try to switch
to the one nearest the block you're currently at, but that adds
significant complexity.  I'm going to implement a couple of different
things and measure them for different workloads.

 Thor Lancelot Simon	                            
   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