Re: Disk scheduling policy (Re: NEW_BUFQ_STRATEGY)
Thor Lancelot Simon <[email protected]>
| Newsgroups | gmane.os.netbsd.devel.kernel,gmane.os.netbsd.devel.performance |
|---|---|
| Message-ID | <[email protected]> |
On Mon, Dec 01, 2003 at 03:04:58PM -0800, Alfred Perlstein wrote: > * Jason Thorpe <[email protected]> [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 [email protected] 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