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
prev 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox