From: Vivek Goyal <vgoyal@redhat.com>
To: Chad Talbott <ctalbott@google.com>
Cc: jaxboe@fusionio.com, linux-kernel@vger.kernel.org,
mrubin@google.com, teravest@google.com
Subject: Re: [PATCH 0/3] cfq-iosched: Fair cross-group preemption
Date: Tue, 22 Mar 2011 11:09:05 -0400 [thread overview]
Message-ID: <20110322150905.GD3757@redhat.com> (raw)
In-Reply-To: <1300756245-12380-1-git-send-email-ctalbott@google.com>
On Mon, Mar 21, 2011 at 06:10:42PM -0700, Chad Talbott wrote:
> This patchset introduces fair cross-group preemption. Right now, we
> don't have strict isolation between processes in different cgroups.
> For example: currently an RT ioprio thread in one group can preempt a
> BE ioprio thread in another group. We would like to have an
> application specify the relative priorities of its threads, but still
> allow strict isolation between applications.
>
> With this patch series, we can configure an entire cgroup as needing
> low-latency service. Then that group will be able to preempt another
> group. To prevent a runaway application from starving other
> applications, we allow this preemption only until it has exceeded its
> fair share (as specified by its relative weight). So a rate-limited,
> but latency sensative application (like streaming audio or video) can
> get front-of-the-line service without fear of it hogging a whole
> disk's IO.
Chad,
Why not just implement simply RT class groups and always allow an RT
group to preempt an BE class. Same thing we do for cfq queues. I will
not worry too much about a run away application consuming all the
bandwidth. If that's a concern we could use blkio controller to limit
the IO rate of a latency sensitive applicaiton to make sure it does
not starve BE applications.
If RT starving BE is an issue, then it is an issue with plain cfq queue
also. First we shall have to fix it there.
This definition that a latency sensitive task get prioritized only
till it is consuming its fair share and if task starts using more than
fair share then CFQ automatically stops prioritizing it sounds little
odd to me. If you are looking for predictability, then we lost it. We
shall have to very well know that task is not eating more than its
fair share before we can gurantee any kind of latencies to that task. And
if we know that task is not hogging the disk, there is anyway no risk
of it starving other groups/tasks completely.
Or we could implement something where once in a while we do allow BE
class tasks to dispatch some IO so that RT tasks do not completely
starve BE class tasks. I guess this will be similar to what cpu scheduler
was trying where an RT tasks got 95% of cpu and 5% bandwidth was reserved
for admin to kill RT tasks if some RT tasks goes wild and locks up the
cpus.
Thanks
Vivek
next prev parent reply other threads:[~2011-03-22 15:09 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-03-22 1:10 [PATCH 0/3] cfq-iosched: Fair cross-group preemption Chad Talbott
2011-03-22 1:10 ` [PATCH 1/3] cfq-iosched: Fair cross-group preemption (interface and documentation) Chad Talbott
2011-03-22 10:03 ` Gui Jianfeng
2011-03-22 18:07 ` Chad Talbott
2011-03-22 1:10 ` [PATCH 2/3] cfq-iosched: Fair cross-group preemption (implementation) Chad Talbott
2011-03-22 1:10 ` [PATCH 3/3] cfq-iosched: Fair cross-group preemption (stats) Chad Talbott
2011-03-22 15:09 ` Vivek Goyal [this message]
2011-03-22 17:39 ` [PATCH 0/3] cfq-iosched: Fair cross-group preemption Chad Talbott
2011-03-22 18:12 ` Vivek Goyal
2011-03-22 23:46 ` Chad Talbott
2011-03-23 1:43 ` Vivek Goyal
2011-03-23 20:10 ` Chad Talbott
2011-03-23 20:41 ` Vivek Goyal
2011-03-24 21:47 ` Chad Talbott
2011-03-25 5:43 ` Gui Jianfeng
2011-03-25 21:32 ` Vivek Goyal
2011-03-25 23:53 ` Chad Talbott
2011-03-28 13:15 ` Vivek Goyal
2011-03-28 16:59 ` Chad Talbott
2011-03-28 17:24 ` Vivek Goyal
2011-03-28 13:17 ` Vivek Goyal
2011-03-28 17:02 ` Chad Talbott
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=20110322150905.GD3757@redhat.com \
--to=vgoyal@redhat.com \
--cc=ctalbott@google.com \
--cc=jaxboe@fusionio.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mrubin@google.com \
--cc=teravest@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