public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Dave Chinner <david@fromorbit.com>
To: 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: Tue, 28 Oct 2008 11:20:24 +1100	[thread overview]
Message-ID: <20081028002024.GM4985@disturbed> (raw)
In-Reply-To: <20081027190139.838646000@elf.corp.google.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.
> 
> - Minimizes the latency of highest priority level.
> - Low priority requests wait for high priority requests.
> - Higher priority request break any anticipating low priority request.
> - If single priority level is used the scheduler behaves as an
>   anticipatory scheduler. So no change for existing users.
> 
> With this change, it is possible for a latency sensitive job to coexist
> with background job.
> 
> Other possible use of this patch is in context of I/O subsystem controller.
> It can add another dimension to the parameters controlling a particular cgroup.
> While we can easily divide b/w among existing croups, setting a bound on
> latency is not a feasible solution. Hence in context of storage devices
> bandwidth and priority can be two parameters controlling I/O. Though
> it can be a standalone patch to separate latency sensitive jobs and need
> not be tied to I/O controller.
> 
> 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.

Cheers,

Dave.
-- 
Dave Chinner
david@fromorbit.com

  reply	other threads:[~2008-10-28  0:20 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 [this message]
2008-10-28 17:14     ` Naveen Gupta
2008-10-28 21:44       ` Dave Chinner
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=20081028002024.GM4985@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