public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Jamie Lokier <jamie@shareable.org>
To: Jens Axboe <axboe@suse.de>
Cc: Jeff Garzik <jgarzik@pobox.com>,
	Nick Piggin <nickpiggin@yahoo.com.au>,
	linux-ide@vger.kernel.org,
	Linux Kernel <linux-kernel@vger.kernel.org>,
	Andrew Morton <akpm@osdl.org>
Subject: Re: [PATCH] speed up SATA
Date: Sun, 28 Mar 2004 19:08:09 +0100	[thread overview]
Message-ID: <20040328180809.GB1087@mail.shareable.org> (raw)
In-Reply-To: <20040328175436.GL24370@suse.de>

Jens Axboe wrote:
> Sorry, but I cannot disagree more. You think an artificial limit at
> the block layer is better than one imposed at the driver end, which
> actually has a lot more of an understanding of what hardware it is
> driving?  This makes zero sense to me. Take floppy.c for instance, I
> really don't want 1MB requests there, since that would take a minute
> to complete. And I might not want 1MB requests on my Super-ZXY
> storage, because that beast completes io easily at an iorate of
> 200MB/sec.

The driver doesn't know how fast the drive is either.

Without timing the drive, interface, and for different request sizes,
neither the block layer _nor_ the driver know a suitable size.

> I absolutely refuse to put a global block layer 'optimal io
> size' restriction in, since that is the ugliest of policies and
> without having _any_ knowledge of what the hardware can do.

But the driver doesn't have _any_ knowledge of what the I/O scheduler
wants.  1MB requests may be a cut-off above which there is negligable
throughput gain for SATA, but those requests may be _far_ too large
for a low-latency I/O scheduling requirement.

If we have a high-level latency scheduling constraint that userspace
should be able to issue a read and get the result within 50ms, or that
the average latency for reads should be <500ms, how does the SATA
driver limiting requests to 1MB help?  It depends on the attached drive.

The fundamental problem here is that neither the driver nor the block
layer have all the information needed to select optimal or maximum
request sizes.  That can only be found by timing the device, perhaps
every time a request is made, and adjusting the I/O scheduling and
request splitting parameters according to that timing and high-level
latency requirements.

>From that point of view, the generic block layer is exactly the right
place to determine those parameters, because the calculation is not
device-specific.

-- Jamie

  reply	other threads:[~2004-03-28 18:08 UTC|newest]

Thread overview: 115+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-03-27 22:37 [PATCH] speed up SATA Jeff Garzik
2004-03-27 23:04 ` Stefan Smietanowski
2004-03-27 23:11   ` Jeff Garzik
2004-03-28  7:23     ` Stefan Smietanowski
2004-03-28 15:37       ` Bartlomiej Zolnierkiewicz
2004-03-27 23:32   ` Bartlomiej Zolnierkiewicz
2004-03-27 23:36     ` Jeff Garzik
2004-03-27 23:40       ` Jeff Garzik
2004-03-28  0:13         ` Bartlomiej Zolnierkiewicz
2004-03-28  0:08           ` Jeff Garzik
2004-03-29 11:42       ` Pavel Machek
2004-03-27 23:37 ` Nick Piggin
2004-03-27 23:44   ` Jeff Garzik
2004-03-27 23:47     ` Nick Piggin
2004-03-27 23:59       ` Jeff Garzik
2004-03-28 14:10         ` Jens Axboe
2004-03-28 17:31           ` Jeff Garzik
2004-03-28 17:35             ` Jens Axboe
2004-03-28 17:48               ` Jeff Garzik
2004-03-28 17:54                 ` Jens Axboe
2004-03-28 18:08                   ` Jamie Lokier [this message]
2004-03-28 18:15                     ` Jens Axboe
2004-03-28 18:55                       ` Jeff Garzik
2004-03-29  8:09                         ` Jens Axboe
2004-03-29 12:41                           ` Jamie Lokier
2004-03-29 12:44                             ` Jens Axboe
2004-03-29 12:50                               ` Jamie Lokier
2004-03-29 13:05                               ` Arjan van de Ven
2004-03-29 13:08                                 ` Jens Axboe
2004-03-30  8:13                                   ` Kurt Garloff
2004-03-30 11:40                                     ` Jens Axboe
2004-03-29 17:19                                 ` Craig I. Hagan
2004-03-29 18:19                           ` Jeff Garzik
2004-03-28 19:06                       ` Jeff Garzik
2004-03-28 18:12                   ` William Lee Irwin III
2004-03-28 18:17                     ` Jens Axboe
2004-03-28 18:30                     ` Bartlomiej Zolnierkiewicz
2004-03-28 18:30                       ` Jens Axboe
2004-03-28 18:45                         ` Bartlomiej Zolnierkiewicz
2004-03-28 18:59                           ` Jeff Garzik
2004-03-28 20:32                             ` Andrew Morton
2004-03-28 20:45                               ` Jeff Garzik
2004-03-29  0:55                             ` Andrea Arcangeli
2004-03-29  4:02                               ` Jeff Garzik
2004-03-29 13:04                                 ` Andrea Arcangeli
2004-03-29 19:45                                   ` Jeff Garzik
2004-03-30 11:09                                     ` Jens Axboe
2004-03-30 15:54                                       ` Timothy Miller
2004-03-30 16:20                                       ` Jeff Garzik
2004-03-30 18:05                                       ` Timothy Miller
2004-03-30 17:50                                         ` Jeff Garzik
2004-03-30 18:19                                           ` Timothy Miller
2004-03-29  4:29                               ` Wim Coekaerts
2004-03-29  7:32                                 ` Denis Vlasenko
2004-03-29  8:13                                 ` Jens Axboe
2004-03-29 13:05                                 ` Andrea Arcangeli
2004-03-29  4:31                               ` William Lee Irwin III
2004-03-29  4:57                               ` Jeff Garzik
2004-03-28 19:52                       ` Nuno Silva
2004-03-28 20:02                         ` Jeff Garzik
2004-03-28  0:06     ` Jeff Garzik
2004-03-28  0:15       ` Nick Piggin
2004-03-28  0:49         ` Jeff Garzik
2004-03-28  1:02           ` Andrew Morton
2004-03-28  1:09             ` Jeff Garzik
2004-03-28 13:59               ` Jens Axboe
2004-03-28 17:29                 ` Jeff Garzik
2004-03-28 17:31                   ` Jens Axboe
2004-03-28 13:51           ` Jamie Lokier
2004-03-28 17:24             ` Jeff Garzik
2004-03-28 17:36               ` Jamie Lokier
2004-03-28 17:54                 ` Jeff Garzik
2004-03-28 20:50                   ` Eric D. Mudama
2004-04-02 10:11                 ` Jeremy Higdon
2004-04-02 16:11                   ` Jamie Lokier
2004-04-03 10:48                     ` Jeremy Higdon
2004-04-03 13:49                       ` Jamie Lokier
2004-03-28 17:40               ` Jens Axboe
2004-03-28 17:49                 ` Jeff Garzik
2004-03-28 17:55                   ` Jens Axboe
2004-03-28 18:04                     ` Jeff Garzik
2004-03-28 18:09                       ` Jens Axboe
2004-03-28 20:12                         ` Jeff Garzik
2004-03-28 20:54                           ` Eric D. Mudama
2004-03-28  7:32       ` Stefan Smietanowski
2004-03-28 20:25         ` Jeff Garzik
2004-03-28 21:16           ` Stefan Smietanowski
2004-03-28 21:26             ` Jeff Garzik
2004-03-28 14:08     ` Jens Axboe
2004-03-28 17:38       ` Jeff Garzik
2004-03-28 17:45         ` Jens Axboe
2004-03-28 20:21       ` Jeff Garzik
2004-03-28  0:07   ` Andrew Morton
2004-03-28  0:21     ` Nick Piggin
2004-03-28  4:40   ` Eric D. Mudama
2004-03-28  6:56     ` Nick Piggin
2004-03-28 20:33       ` Eric D. Mudama
2004-03-28 20:59         ` Eric D. Mudama
2004-03-29  1:30           ` Nick Piggin
2004-03-29  5:24             ` Eric D. Mudama
2004-03-29 13:03               ` Jamie Lokier
2004-03-29 11:36 ` Pavel Machek
2004-03-29 18:46   ` David Lang
2004-03-29 20:13     ` Jeff Garzik
2004-03-30  5:55   ` Eric D. Mudama
2004-03-30 11:54 ` Marc Bevand
2004-03-30 13:07   ` Jens Axboe
2004-03-30 13:48     ` Marc Bevand
2004-03-30 13:49       ` Jens Axboe
2004-03-30 15:31   ` Jeff Garzik
2004-03-30 17:42   ` Jeff Garzik
2004-03-31  9:12     ` Marc Bevand
  -- strict thread matches above, loose matches on Subject: below --
2004-03-31  5:47 Marcus Hartig
2004-03-31  6:56 ` Jeff Garzik
2004-03-31 16:07   ` Marcus Hartig

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=20040328180809.GB1087@mail.shareable.org \
    --to=jamie@shareable.org \
    --cc=akpm@osdl.org \
    --cc=axboe@suse.de \
    --cc=jgarzik@pobox.com \
    --cc=linux-ide@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=nickpiggin@yahoo.com.au \
    /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