From: Al Boldi <a1426z@gawab.com>
To: linux-kernel@vger.kernel.org
Subject: Re: [Announce] [patch] Modular Scheduler Core and Completely Fair
Date: Sun, 15 Apr 2007 09:31:42 +0300 [thread overview]
Message-ID: <200704150931.42268.a1426z@gawab.com> (raw)
William Lee Irwin III wrote:
> On Fri, Apr 13, 2007 at 10:21:00PM +0200, Ingo Molnar wrote:
> > [announce] [patch] Modular Scheduler Core and Completely Fair Scheduler
> > [CFS] i'm pleased to announce the first release of the "Modular
> > Scheduler Core and Completely Fair Scheduler [CFS]" patchset:
> > http://redhat.com/~mingo/cfs-scheduler/sched-modular+cfs.patch
> > This project is a complete rewrite of the Linux task scheduler. My goal
> > is to address various feature requests and to fix deficiencies in the
> > vanilla scheduler that were suggested/found in the past few years, both
> > for desktop scheduling and for server scheduling workloads.
> > [ QuickStart: apply the patch to v2.6.21-rc6, recompile, reboot. The
> > new scheduler will be active by default and all tasks will default
> > to the new SCHED_FAIR interactive scheduling class. ]
>
> A pleasant surprise, though I did see it coming.
Same here, but I didn't expect it so soon. Thanks!
> > The CFS patch uses a completely different approach and implementation
> > from RSDL/SD. My goal was to make CFS's interactivity quality exceed
> > that of RSDL/SD, which is a high standard to meet :-) Testing
> > feedback is welcome to decide this one way or another.
I slammed this patch on 2.6.20.6 with some ugly rejects but it did compile,
then tested, so my results may be affected by the rejects.
Boot into /bin/sh.
Run chew.c on three different VT's with different nice each. Observe.
Console 1:
pid 615, prio 19, out for 19 ms, ran for 0 ms, load 4%
pid 615, prio 19, out for 19 ms, ran for 0 ms, load 4%
pid 615, prio 19, out for 19 ms, ran for 0 ms, load 4%
pid 615, prio 19, out for 19 ms, ran for 0 ms, load 4%
pid 615, prio 19, out for 77 ms, ran for 0 ms, load 1%
pid 615, prio 19, out for 125 ms, ran for 0 ms, load 0%
pid 615, prio 19, out for 209 ms, ran for 0 ms, load 0%
pid 615, prio 19, out for 346 ms, ran for 0 ms, load 0%
pid 615, prio 19, out for 552 ms, ran for 0 ms, load 0%
pid 615, prio 19, out for 882 ms, ran for 0 ms, load 0%
pid 615, prio 19, out for 1231 ms, ran for 0 ms, load 0%
pid 615, prio 19, out for 1335 ms, ran for 0 ms, load 0%
pid 615, prio 19, out for 1218 ms, ran for 0 ms, load 0%
pid 615, prio 19, out for 1254 ms, ran for 0 ms, load 0%
pid 615, prio 19, out for 1774 ms, ran for 0 ms, load 0%
pid 615, prio 19, out for 1946 ms, ran for 0 ms, load 0%
pid 615, prio 19, out for 1942 ms, ran for 0 ms, load 0%
pid 615, prio 19, out for 2749 ms, ran for 0 ms, load 0%
pid 615, prio 19, out for 3217 ms, ran for 0 ms, load 0%
Console 2:
pid 616, prio 0, out for 8 ms, ran for 2 ms, load 26%
pid 616, prio 0, out for 9 ms, ran for 2 ms, load 24%
pid 616, prio 0, out for 8 ms, ran for 2 ms, load 26%
pid 616, prio 0, out for 9 ms, ran for 2 ms, load 24%
pid 616, prio 0, out for 8 ms, ran for 2 ms, load 26%
pid 616, prio 0, out for 8 ms, ran for 2 ms, load 26%
pid 616, prio 0, out for 9 ms, ran for 2 ms, load 24%
pid 616, prio 0, out for 8 ms, ran for 2 ms, load 26%
pid 616, prio 0, out for 8 ms, ran for 2 ms, load 24%
pid 616, prio 0, out for 8 ms, ran for 2 ms, load 26%
pid 616, prio 0, out for 8 ms, ran for 2 ms, load 26%
pid 616, prio 0, out for 8 ms, ran for 2 ms, load 24%
pid 616, prio 0, out for 8 ms, ran for 2 ms, load 26%
pid 616, prio 0, out for 8 ms, ran for 2 ms, load 24%
pid 616, prio 0, out for 7 ms, ran for 2 ms, load 26%
pid 616, prio 0, out for 8 ms, ran for 2 ms, load 26%
pid 616, prio 0, out for 9 ms, ran for 2 ms, load 24%
pid 616, prio 0, out for 5 ms, ran for 2 ms, load 26%
Console 3:
pid 617, prio -10, out for 3 ms, ran for 8 ms, load 74%
pid 617, prio -10, out for 3 ms, ran for 7 ms, load 72%
pid 617, prio -10, out for 3 ms, ran for 7 ms, load 72%
pid 617, prio -10, out for 3 ms, ran for 8 ms, load 74%
pid 617, prio -10, out for 3 ms, ran for 7 ms, load 72%
pid 617, prio -10, out for 3 ms, ran for 8 ms, load 74%
pid 617, prio -10, out for 3 ms, ran for 7 ms, load 72%
pid 617, prio -10, out for 3 ms, ran for 7 ms, load 72%
pid 617, prio -10, out for 3 ms, ran for 8 ms, load 74%
pid 617, prio -10, out for 3 ms, ran for 7 ms, load 72%
pid 617, prio -10, out for 3 ms, ran for 8 ms, load 74%
pid 617, prio -10, out for 3 ms, ran for 7 ms, load 72%
pid 617, prio -10, out for 3 ms, ran for 7 ms, load 72%
pid 617, prio -10, out for 3 ms, ran for 8 ms, load 74%
pid 617, prio -10, out for 3 ms, ran for 7 ms, load 72%
pid 617, prio -10, out for 3 ms, ran for 8 ms, load 74%
pid 617, prio -10, out for 3 ms, ran for 7 ms, load 72%
pid 617, prio -10, out for 3 ms, ran for 7 ms, load 72%
It looks like negative nice affects positive nice adversely.
> > CFS's design is quite radical: it does not use runqueues, it uses a
> > time-ordered rbtree to build a 'timeline' of future task execution,
> > and thus has no 'array switch' artifacts (by which both the vanilla
> > scheduler and RSDL/SD are affected).
Sounds interresting, but it looks like CPU-bound procs easily steal sleeping
proc timeslices, thus making it rather unfair, affecting interactivity.
The latencies look great, though.
Also, it may be useful to lower-bound timeslices, as they become ridiculously
small ( < 1ms ).
Thanks!
--
Al
next reply other threads:[~2007-04-15 6:27 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-04-15 6:31 Al Boldi [this message]
2007-04-16 8:53 ` [Announce] [patch] Modular Scheduler Core and Completely Fair Al Boldi
2007-04-16 10:18 ` Peter Williams
2007-04-16 10:42 ` Al Boldi
2007-04-16 13:05 ` Peter Williams
2007-04-16 14:38 ` Al Boldi
2007-04-17 0:42 ` Peter Williams
2007-04-16 14:38 ` Al Boldi
2007-04-17 16:29 ` Al Boldi
2007-04-17 21:45 ` William Lee Irwin III
2007-04-18 4:53 ` Al Boldi
[not found] <E1HOuCl-0000K8-3c@mx1.bon.at>
2007-04-19 6:11 ` Ph. Marek
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=200704150931.42268.a1426z@gawab.com \
--to=a1426z@gawab.com \
--cc=linux-kernel@vger.kernel.org \
/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