From: Jens Axboe <axboe@suse.de>
To: Chris Mason <mason@suse.com>
Cc: Marcelo Tosatti <marcelo@conectiva.com.br>,
lkml <linux-kernel@vger.kernel.org>,
"Stephen C. Tweedie" <sct@redhat.com>,
Alan Cox <alan@lxorguk.ukuu.org.uk>,
Jeff Garzik <jgarzik@pobox.com>, Andrew Morton <akpm@digeo.com>,
Andrea Arcangeli <andrea@suse.de>,
Alexander Viro <viro@math.psu.edu>
Subject: Re: RFC on io-stalls patch
Date: Sun, 13 Jul 2003 19:47:09 +0200 [thread overview]
Message-ID: <20030713174709.GA843@suse.de> (raw)
In-Reply-To: <1058113238.13313.127.camel@tiny.suse.com>
On Sun, Jul 13 2003, Chris Mason wrote:
> On Sun, 2003-07-13 at 05:01, Jens Axboe wrote:
> > On Sat, Jul 12 2003, Chris Mason wrote:
> > > On Sat, 2003-07-12 at 03:37, Jens Axboe wrote:
> > >
> > > > > I believe the new way provides better overall read performance in the
> > > > > presence of lots of writes.
> > > >
> > > > I fail to see the logic in that. Reads are now treated fairly wrt
> > > > writes, but it would be really easy to let writes consume the entire
> > > > capacity of the queue (be it all the requests, or just going oversized).
> > > >
> > > > I think the oversized logic is flawed right now, and should only apply
> > > > to writes. Always let reads get through. And don't let writes consume
> > > > the last 1/8th of the requests, or something like that at least. I'll
> > > > try and do a patch for pre4.
> > >
> > > If we don't apply oversized checks to reads, what keeps a big streaming
> > > reader from starving out all the writes?
> >
> > It's just so much easier to full the queue with writes than with reads.
> >
>
> Well, I'd say it's a more common problem to have lots of writes, but it
> is pretty easy to fill the queue with reads.
s/easy/occurs often. Bad wording, yes of course it's trivial to make it
happen. But on a desktop machine, it rarely does. Can't say the same
thing about writes.
> > > The current patch provides a relatively fixed amount of work to get a
> > > request, and I don't think we should allow that to be bypassed. We
> > > might want to add a special case for synchronous reads (like bread), via
> > > a b_state bit that tells the block layer an immediate unplug is coming
> > > soon. That way the block layer can ignore the oversized checks, grant a
> > > request and unplug right away, hopefully lowering the total number of
> > > unplugs the synchronous reader has to wait through.
> > >
> > > Anyway, if you've got doubts about the current patch, I'd be happy to
> > > run a specific benchmark you think will show the bad read
> > > characteristics.
> >
> > No I don't have anything specific, it just seems like a bad heuristic to
> > get rid of. I can try and do some testing tomorrow. I do feel strongly
> > that we should at least make sure to reserve a few requests for reads
> > exclusively, even if you don't agree with the oversized check. Anything
> > else really contradicts all the io testing we have done the past years
> > that shows how important it is to get a read in ASAP. And doing that in
> > the middle of 2.4.22-pre is a mistake imo, if you don't have numbers to
> > show that it doesn't matter for the quick service of reads.
>
> I believe elevator-lowlatency tries to solve the 'get a read in ASAP'
> from a different direction, by trying to limit both the time required to
> get a request and the time for required for the unplug to run. Most of
> my numbers so far have been timing reads in the face of lots of writes,
> where elevator-lowlatency is a big win.
>
> It should make sense to have a reserve of requests for reads, but I
> think this should be limited to the synchronous reads. Still, I haven't
> been playing with all of this for very long, so your ideas are much
> appreciated.
Just catering to the sync reads is probably good enough, and I think
that passing in that extra bit of information is done the best through
just a b_state bit.
I'll try and bench a bit tomorrow with that patched in.
--
Jens Axboe
next prev parent reply other threads:[~2003-07-13 17:46 UTC|newest]
Thread overview: 68+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-07-08 20:06 RFC on io-stalls patch Marcelo Tosatti
2003-07-10 13:57 ` Jens Axboe
2003-07-11 14:13 ` Chris Mason
2003-07-12 0:20 ` Nick Piggin
2003-07-12 18:37 ` Chris Mason
2003-07-12 7:37 ` Jens Axboe
2003-07-12 7:48 ` Jens Axboe
2003-07-12 18:32 ` Chris Mason
2003-07-13 0:33 ` Andrea Arcangeli
2003-07-13 9:01 ` Jens Axboe
2003-07-13 16:20 ` Chris Mason
2003-07-13 16:45 ` Jeff Garzik
2003-07-13 19:33 ` Andrea Arcangeli
2003-07-13 17:47 ` Jens Axboe [this message]
2003-07-13 19:35 ` Andrea Arcangeli
2003-07-14 0:36 ` Chris Mason
2003-07-13 19:19 ` Andrea Arcangeli
2003-07-14 5:49 ` Jens Axboe
2003-07-14 12:23 ` Marcelo Tosatti
2003-07-14 13:12 ` Jens Axboe
2003-07-14 19:51 ` Jens Axboe
2003-07-14 20:09 ` Chris Mason
2003-07-14 20:19 ` Andrea Arcangeli
2003-07-14 21:24 ` Chris Mason
2003-07-15 5:46 ` Jens Axboe
2003-07-14 20:09 ` Marcelo Tosatti
2003-07-14 20:24 ` Andrea Arcangeli
2003-07-14 20:34 ` Chris Mason
2003-07-15 5:35 ` Jens Axboe
[not found] ` <20030714224528.GU16313@dualathlon.random>
2003-07-15 5:40 ` Jens Axboe
[not found] ` <1058229360.13317.364.camel@tiny.suse.com>
2003-07-15 5:43 ` Jens Axboe
[not found] ` <20030714175238.3eaddd9a.akpm@osdl.org>
[not found] ` <20030715020706.GC16313@dualathlon.random>
2003-07-15 5:45 ` Jens Axboe
2003-07-15 6:01 ` Andrea Arcangeli
2003-07-15 6:08 ` Jens Axboe
2003-07-15 7:03 ` Andrea Arcangeli
2003-07-15 8:28 ` Jens Axboe
2003-07-15 9:12 ` Chris Mason
2003-07-15 9:17 ` Jens Axboe
2003-07-15 9:18 ` Jens Axboe
2003-07-15 9:30 ` Chris Mason
2003-07-15 10:03 ` Andrea Arcangeli
2003-07-15 10:11 ` Jens Axboe
2003-07-15 14:18 ` Chris Mason
2003-07-15 14:29 ` Jens Axboe
2003-07-16 17:06 ` Chris Mason
2003-07-15 9:22 ` Chris Mason
2003-07-15 9:59 ` Andrea Arcangeli
2003-07-15 9:48 ` Andrea Arcangeli
2003-07-14 20:16 ` Andrea Arcangeli
2003-07-14 20:17 ` Marcelo Tosatti
2003-07-14 20:27 ` Andrea Arcangeli
2003-07-15 5:26 ` Jens Axboe
2003-07-15 5:48 ` Andrea Arcangeli
2003-07-15 6:01 ` Jens Axboe
2003-07-15 6:33 ` Andrea Arcangeli
2003-07-15 11:22 ` Alan Cox
2003-07-15 11:27 ` Jens Axboe
2003-07-16 12:43 ` Andrea Arcangeli
2003-07-16 12:46 ` Jens Axboe
2003-07-16 12:59 ` Andrea Arcangeli
2003-07-16 13:04 ` Jens Axboe
2003-07-16 13:11 ` Andrea Arcangeli
2003-07-16 13:21 ` Jens Axboe
2003-07-16 13:44 ` Andrea Arcangeli
2003-07-16 14:00 ` Jens Axboe
2003-07-16 14:24 ` Andrea Arcangeli
2003-07-16 16:49 ` Andrew Morton
-- strict thread matches above, loose matches on Subject: below --
2003-07-15 18:47 Shane Shrybman
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=20030713174709.GA843@suse.de \
--to=axboe@suse.de \
--cc=akpm@digeo.com \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=andrea@suse.de \
--cc=jgarzik@pobox.com \
--cc=linux-kernel@vger.kernel.org \
--cc=marcelo@conectiva.com.br \
--cc=mason@suse.com \
--cc=sct@redhat.com \
--cc=viro@math.psu.edu \
/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.