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