From: Dave Chinner <david@fromorbit.com>
To: Naveen Gupta <ngupta@google.com>
Cc: linux-kernel@vger.kernel.org, jens.axboe@oracle.com,
akpm@linux-foundation.org
Subject: Re: [PATCH] Priorities in Anticipatory I/O scheduler
Date: Wed, 29 Oct 2008 08:44:43 +1100 [thread overview]
Message-ID: <20081028214443.GX4985@disturbed> (raw)
In-Reply-To: <2846be6b0810281014q495cef22mae344423ed59c71a@mail.gmail.com>
On Tue, Oct 28, 2008 at 10:14:20AM -0700, Naveen Gupta wrote:
> 2008/10/27 Dave Chinner <david@fromorbit.com>:
> > On Mon, Oct 27, 2008 at 12:01:32PM -0700, ngupta@google.com wrote:
> >>
> >> Modifications to the Anticipatory I/O scheduler to add multiple priority
> >> levels. It makes use of anticipation and batching in current
> >> anticipatory scheduler to implement priorities.
.....
> >> In this patch I have added a new class IOPRIO_CLASS_LATENCY to differentiate
> >> notion of absolute priority over existing uses of various time-slice based
> >> priority classes in cfq. Though internally within anticipatory scheduler all
> >> of them map to best-effort levels. Hence, one can also use various best-effort
> >> priority levels.
> >
> > Please don't introduce yet another incompatible behaviour between
> > I/O schedulers. It's bad enough from an optimisation point of view
> > that BIO_RW_SYNC and BIO_RW_META mean different things to different
> > schedulers, let alone that only CFQ currently understands
> > priorities. If you are going to introduce priorities into AS, then
> > please, please, please make it use the same interface as CFQ.
> >
> > Why? Both the extN and XFS devs have been considering bumping the
> > priority of journal writes using the existing CFQ-based I/O priority
> > mechanism - the last thing I want to see is a different scheduler
> > requiring a different priority configuration to acheive the same
> > optimisation. There is no way we can support this sort of
> > optimisation in the filesystem code if the interface changes when
> > the I/O scheduler changes. So please use the existing IOPRIO classes
> > to map the priorities for the AS scheduler.
> >
>
> The anticipatory scheduler chooses it's next i/o to be of highest
> available priority level.
That sounds exactly like what the current RT class is supposed to
be used for - defining the absolute priority of dispatch. How
is this latency class different to the current RT class semantics
that are defined for CFQ?
> So, in some sense it kind of implements
> absolute priority and is best used for jobs which are latency
> sensitive. Since the priorities can be and are mapped internally in
> anticipatory scheduler, BEST_EFFORT class is mapped one-one with the
> LATENCY class.
So you map the BE class to something with the same semantics as the
RT class? What mapping do you do when an application uses the RT
class?
> A filesystem can use best-effort class using similar
> interface as for cfq.
The folk using the RT priority classes greatly objected to using
the RT class for journal I/O precisely because it would then
preempt their application's RT I/O and introduce unpredictable
latencies.
Journal I/O will typically use the highest priority BE class so that
it is promoted above BE I/O but does not preempt RT I/O. With your
mapping of BE classes to this new "absolute priority latency" class,
this configuration will give journal I/O the highest priority in the
scheduler. This will cause preemption of your latency sensitive I/O
and so those latencies you are trying to avoid won't go away....
Cheers,
Dave.
--
Dave Chinner
david@fromorbit.com
next prev parent reply other threads:[~2008-10-28 21:44 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20081027190131.070061000@elf.corp.google.com>
2008-10-27 19:01 ` [PATCH] Priorities in Anticipatory I/O scheduler ngupta
2008-10-28 0:20 ` Dave Chinner
2008-10-28 17:14 ` Naveen Gupta
2008-10-28 21:44 ` Dave Chinner [this message]
2008-10-28 22:48 ` Naveen Gupta
2008-10-28 23:31 ` Dave Chinner
2008-10-29 0:04 ` Naveen Gupta
2008-10-29 0:31 ` Aaron Carroll
2008-10-29 1:17 ` Naveen Gupta
2008-10-29 2:05 ` Aaron Carroll
2008-10-29 8:53 ` Naveen Gupta
2008-10-29 4:05 ` Dave Chinner
2008-10-29 8:49 ` Naveen Gupta
2008-10-29 21:33 ` Dave Chinner
[not found] <20080706220551.136430000@elf.corp.google.com>
2008-07-06 22:05 ` ngupta
2008-07-07 3:51 ` Aaron Carroll
2008-07-10 18:52 ` Naveen Gupta
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=20081028214443.GX4985@disturbed \
--to=david@fromorbit.com \
--cc=akpm@linux-foundation.org \
--cc=jens.axboe@oracle.com \
--cc=linux-kernel@vger.kernel.org \
--cc=ngupta@google.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