From: William Lee Irwin III <wli@holomorphy.com>
To: Thomas Gleixner <tglx@linutronix.de>
Cc: Kasper Sandberg <lkml@metanurb.dk>, Willy Tarreau <w@1wt.eu>,
Ingo Molnar <mingo@elte.hu>,
Linus Torvalds <torvalds@linux-foundation.org>,
Andrew Morton <akpm@linux-foundation.org>,
Gene Heskett <gene.heskett@gmail.com>,
linux-kernel@vger.kernel.org, Con Kolivas <kernel@kolivas.org>,
Nick Piggin <npiggin@suse.de>, Mike Galbraith <efault@gmx.de>,
Arjan van de Ven <arjan@infradead.org>,
Peter Williams <pwil3058@bigpond.net.au>,
caglar@pardus.org.tr, Mark Lord <lkml@rtr.ca>,
Zach Carter <linux@zachcarter.com>,
buddabrod <buddabrod@gmail.com>
Subject: Re: [patch] CFS scheduler, -v6
Date: Sun, 29 Apr 2007 05:55:22 -0700 [thread overview]
Message-ID: <20070429125522.GB31925@holomorphy.com> (raw)
In-Reply-To: <1177848810.5791.104.camel@localhost.localdomain>
On Sun, Apr 29, 2007 at 02:13:30PM +0200, Thomas Gleixner wrote:
> SD is a one to one replacement of the existing scheduler guts - with a
> different behaviour.
> CFS is a huge step into a modular and hierarchical scheduler design,
> which allows more than just implementing a clever scheduler for a single
> purpose. In a hierarchical scheduler you can implement resource
> management and other fancy things, in the monolitic design of the
> current scheduler (and it's proposed replacement SD) you can't. But SD
> can be made one of the modular variants.
The modularity provided is not enough to allow an implementation of
mainline, SD, or nicksched without significant core scheduler impact.
CFS doesn't have all that much to do with scheduler classes. A weak form
of them was done in tandem with the scheduler itself. The modularity
provided is sufficiently weak the advantage is largely prettiness of the
code. So essentially CFS is every bit as monolithic as mainline, SD, et
al, with some dressing that suggests modularity without actually making
any accommodations for alternative policies (e.g. reverting to mainline).
You'll hit the holes in the driver API quite quickly should you attempt
to port mainline to it. You'll hit several missing driver operations
right in schedule(), for starters. At some point you may also notice
that simple enqueue operations are not all that's there. Representing
enqueueing to active vs. expired and head vs. tail are needed for
current mainline to be representible by a set of driver operations.
It's also a bit silly to remove and re-insert a queue element for cfs
(or anything else using a tree-structured heap, which yes, a search
tree is, even if a slow one), which could use a reprioritization driver
operation, but I suppose it won't oops.
You'll also hit the same holes should you attempt to write such a
modularity patch for mainline as opposed to porting current mainline to
the driver API as-given. It takes a bit more work to get something that
actually works for all this, and it borders on disingenuity to
suggest that the scheduler class/driver API as it now stands is
capable of any such thing as porting current mainline, nicksched, or SD
to it without significant code impact to the core scheduler code.
So on both these points, I don't see cfs as being adequate as it now
stands for a modular, hierarchical scheduler design. If we want a truly
modular and hierarchical scheduler design, I'd suggest pursuing it
directly and independently of policy, and furthermore considering the
representability of various policies in the scheduling class/driver API
as a test of its adequacy.
-- wli
next prev parent reply other threads:[~2007-04-29 12:55 UTC|newest]
Thread overview: 89+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-04-25 21:47 [patch] CFS scheduler, -v6 Ingo Molnar
2007-04-26 2:14 ` Gene Heskett
2007-04-26 3:29 ` Nick Piggin
2007-04-26 3:49 ` Andrew Morton
2007-04-26 4:16 ` William Lee Irwin III
2007-04-26 8:27 ` Ingo Molnar
2007-04-26 9:18 ` Ingo Molnar
2007-04-26 14:06 ` Redeeman
2007-04-26 14:41 ` Gene Heskett
2007-04-26 20:09 ` Kasper Sandberg
2007-04-26 21:21 ` Gene Heskett
2007-04-27 4:02 ` Mike Galbraith
2007-04-27 6:01 ` Mike Galbraith
2007-04-27 11:53 ` Ingo Molnar
2007-04-27 11:55 ` Ingo Molnar
2007-04-27 13:39 ` Thomas Gleixner
2007-04-27 13:41 ` Ingo Molnar
2007-04-27 13:44 ` Thomas Gleixner
2007-04-28 15:35 ` Kasper Sandberg
2007-04-28 20:45 ` Lee Revell
2007-04-29 1:18 ` Kasper Sandberg
2007-04-29 5:30 ` Willy Tarreau
2007-04-29 6:45 ` Mike Galbraith
2007-04-29 6:59 ` Ingo Molnar
2007-04-29 7:16 ` Willy Tarreau
2007-04-29 7:30 ` Ingo Molnar
2007-04-29 7:38 ` Willy Tarreau
2007-04-29 8:00 ` Ingo Molnar
2007-04-29 8:02 ` Willy Tarreau
2007-04-29 9:52 ` Con Kolivas
2007-04-29 10:19 ` Mike Galbraith
2007-04-29 7:54 ` William Lee Irwin III
2007-04-29 8:03 ` Ingo Molnar
2007-04-29 8:16 ` William Lee Irwin III
2007-04-29 8:13 ` Willy Tarreau
2007-04-29 8:58 ` William Lee Irwin III
2007-04-29 8:11 ` Mike Galbraith
2007-04-29 10:30 ` Thomas Gleixner
2007-04-29 10:33 ` William Lee Irwin III
2007-04-29 10:48 ` Kasper Sandberg
2007-04-29 11:25 ` Thomas Gleixner
2007-04-29 10:53 ` Con Kolivas
2007-04-29 11:11 ` Bill Huey
2007-04-29 11:50 ` Thomas Gleixner
2007-04-29 11:11 ` Willy Tarreau
2007-04-29 11:46 ` Con Kolivas
2007-04-29 12:09 ` Paolo Ciarrocchi
2007-04-29 15:39 ` Gene Heskett
2007-04-29 11:59 ` Thomas Gleixner
2007-04-29 12:25 ` Willy Tarreau
2007-04-29 12:00 ` Kasper Sandberg
2007-04-29 12:13 ` Thomas Gleixner
2007-04-29 12:21 ` Kasper Sandberg
2007-04-29 12:55 ` William Lee Irwin III [this message]
2007-04-29 13:37 ` Thomas Gleixner
2007-05-01 7:55 ` Nick Piggin
2007-05-01 13:00 ` William Lee Irwin III
2007-04-29 20:30 ` Mark Lord
2007-04-29 15:28 ` Gene Heskett
2007-04-29 7:59 ` Kasper Sandberg
2007-04-29 8:05 ` Ingo Molnar
2007-04-29 15:42 ` Ray Lee
2007-04-29 17:09 ` Kasper Sandberg
2007-04-29 6:47 ` Ingo Molnar
[not found] ` <20070429170908.GA31417@elte.hu>
[not found] ` <20070429173902.GA4349@elte.hu>
2007-04-30 17:45 ` 3d smoothness (was: Re: [patch] CFS scheduler, -v6) Kasper Sandberg
2007-04-30 20:17 ` Ingo Molnar
2007-04-30 20:44 ` Kasper Sandberg
2007-04-27 12:52 ` [patch] CFS scheduler, -v6 William Lee Irwin III
2007-04-27 13:02 ` Ingo Molnar
2007-04-27 21:16 ` Lee Revell
2007-04-26 22:48 ` Con Kolivas
2007-04-27 0:39 ` Gene Heskett
2007-04-27 0:57 ` Con Kolivas
2007-04-27 1:03 ` Gene Heskett
2007-04-27 20:54 ` Bill Davidsen
2007-04-26 16:05 ` Mike Galbraith
2007-04-26 19:27 ` Thomas Gleixner
2007-04-26 19:35 ` Ingo Molnar
2007-04-26 19:42 ` Thomas Gleixner
2007-04-26 20:11 ` Ingo Molnar
2007-04-27 13:19 ` Mark Lord
2007-04-27 13:22 ` Mark Lord
2007-04-27 13:45 ` Ingo Molnar
2007-04-28 12:45 ` Srivatsa Vaddagiri
2007-04-28 13:53 ` Ingo Molnar
2007-04-28 15:23 ` Srivatsa Vaddagiri
2007-04-28 15:22 ` Ingo Molnar
2007-04-28 15:28 ` Srivatsa Vaddagiri
-- strict thread matches above, loose matches on Subject: below --
2007-04-27 21:59 Art Haas
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=20070429125522.GB31925@holomorphy.com \
--to=wli@holomorphy.com \
--cc=akpm@linux-foundation.org \
--cc=arjan@infradead.org \
--cc=buddabrod@gmail.com \
--cc=caglar@pardus.org.tr \
--cc=efault@gmx.de \
--cc=gene.heskett@gmail.com \
--cc=kernel@kolivas.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@zachcarter.com \
--cc=lkml@metanurb.dk \
--cc=lkml@rtr.ca \
--cc=mingo@elte.hu \
--cc=npiggin@suse.de \
--cc=pwil3058@bigpond.net.au \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.org \
--cc=w@1wt.eu \
/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