Subject: Re: Disk scheduling policy (Re: NEW_BUFQ_STRATEGY)
To: Alfred Perlstein <bright@mu.org>
From: Thor Lancelot Simon <tls@rek.tjls.com>
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 <thorpej@wasabisystems.com> [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	                                      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