All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jens Axboe <axboe@suse.de>
To: Nate Diller <nate.diller@gmail.com>
Cc: Andrew Morton <akpm@osdl.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH -mm] [2/2] Add the Elevator I/O scheduler
Date: Fri, 4 Aug 2006 07:30:21 +0200	[thread overview]
Message-ID: <20060804053021.GB4717@suse.de> (raw)
In-Reply-To: <5c49b0ed0608031603v5ff6208bo63847513bee1b038@mail.gmail.com>

On Thu, Aug 03 2006, Nate Diller wrote:
> This is the Elevator I/O scheduler.  It is a simple one-way elevator,
> with a couple tunables for reducing latency or starvation.  It also
> has a performance-oriented tracing facility to help debug strange or
> specialized workloads.
> 
> This also adds a new merge call to the iosched API.
> 
> Tested and benchmarked extensively on several platforms with several
> disk controllers and multiple brands of disk.  Subsequently ported
> forward from 2.6.14, compile and boot tested on 2.6.18-rc1-mm2.

So where are these benchmarks?

> diff -urpN -X dontdiff linux-2.6.18-rc1-mm2/block/elevator-iosched.c
> linux-dput/block/elevator-iosched.c
> --- linux-2.6.18-rc1-mm2/block/elevator-iosched.c	1969-12-31
> 16:00:00.000000000 -0800
> +++ linux-dput/block/elevator-iosched.c	2006-08-02 
> 18:04:52.000000000 -0700
> @@ -0,0 +1,1182 @@
> +/*
> + *  linux/block/elevator-iosched.c
> + *
> + *  Elevator I/O scheduler.  This implementation is intended to be much

[snip]

That's a huge chunk of text, can we please put the Hans speak somewhere
else? In-file documentation is fine if it explains what the
file/algorithm does, lets not fill it with pages of stuff.

For the remainder of the file - way too many macros, too much ?: usage,
kill the "nate" printk prefixes, remove the alias front sector
condition.

Also, rename it, don't call it "elevator". We have enough naming
confusing as it is.

> diff -urpN -X dontdiff linux-2.6.18-rc1-mm2/block/Kconfig.iosched
> linux-dput/block/Kconfig.iosched
> --- linux-2.6.18-rc1-mm2/block/Kconfig.iosched	2006-07-18
> 14:52:29.000000000 -0700
> +++ linux-dput/block/Kconfig.iosched	2006-08-02 17:40:01.000000000 -0700
> @@ -38,21 +38,55 @@ config IOSCHED_CFQ
> 	  among all processes in the system. It should provide a fair
> 	  working environment, suitable for desktop systems.
> 
> +config IOSCHED_ELEVATOR
> +	tristate "Elevator I/O scheduler"
> +	default y
> +	---help---
> +	  This is a simple BSD style one-way elevator.  It avoids the 
> complexity
> +	  of deadlines, and uses a limit on contiguous I/O sectors to keep 
> things
> +	  moving and reduce latency.

deadlines are a simply fifo, it's by no stretch of the imagination a
"complexity". Please fixup this entry.

> +config IOSCHED_EL_SSTF
> +	bool "Alternate Heuristic: Shortest Seek Time First" if 
> IOSCHED_ELEVATOR
> +	default n
> +	---help---
> +	  Elevator normally uses the C-SCAN one-way elevator algorithm,
> +	  which is useful in most situations to avoid queue congestion and
> +	  request starvation.  In some cases, SSTF might be higher
> +	  performance, particularly with certain localized workloads.
> +
> +	  If you don't know that you want this, you don't.

sysfs entry?

> +config IOSCHED_EL_PERF_DEBUG
> +	bool "Debug Elevator I/O performance" if IOSCHED_ELEVATOR
> +	default y
> +	---help---
> +	  This enables extra checking to ensure that Elevator I/O scheduling
> +	  is occurring without errors that could effect performance.  It
> +	  will print messages into the system log if it detects problems.
> +	  If your performance under Elevator is lower than you expect, or if
> +	  you would like to monitor for degradation, enable this option.
> +
> +	  This has negligible overhead, and does not change Elevator's 
> behavior.
> +
> choice
> 	prompt "Default I/O scheduler"
> -	default DEFAULT_CFQ
> +	default DEFAULT_AS
> 	help
> 	  Select the I/O scheduler which will be used by default for all
> 	  block devices.

Eh?

> @@ -2951,7 +2953,7 @@ get_rq:
> 		blk_plug_device(q);
> 	add_request(q, req);
> out:
> -	if (sync)
> +/*	if (sync)*/
> 		__generic_unplug_device(q);
> 
> 	spin_unlock_irq(q->queue_lock);

Huh?

-- 
Jens Axboe


      parent reply	other threads:[~2006-08-04  5:29 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-08-03 23:03 [PATCH -mm] [2/2] Add the Elevator I/O scheduler Nate Diller
2006-08-03 23:53 ` Dave Jones
2006-08-04  0:06   ` Nate Diller
2006-08-04  1:28   ` Daniel Phillips
2006-08-07 20:07     ` Steven Rostedt
2006-08-04  1:31   ` Daniel Phillips
2006-08-03 23:55 ` Adrian Bunk
2006-08-04  0:08   ` Nate Diller
2006-08-04  5:30 ` Jens Axboe [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20060804053021.GB4717@suse.de \
    --to=axboe@suse.de \
    --cc=akpm@osdl.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=nate.diller@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.