Re: [Announce] [patch] Modular Scheduler Core and Completely Fair Scheduler [CFS]

Ingo Molnar
2007-04-13T20:56:05Z

* Bill Huey <billh@gnuppy.monkey.org> wrote:

> Con has been asking for module support for years if I understand your
> patch corectly. [...]

Yeah. Note that there are some subtle but crutial differences between
PlugSched (which Con used, and which i opposed in the past) and this
approach.

PlugSched cuts the interfaces at a high level in a monolithic way and
introduces kernel/scheduler.c that uses one pluggable scheduler
(represented via the 'scheduler' global template) at a time.

while in this CFS patchset i'm using modularization ('scheduler
classes') to simplify the _existing_ multi-policy implementation of the
scheduler. These 'scheduler classes' are in a hierarchy and are stacked
on top of each other. They are in use at once. Currently there's two of
them: sched_ops_rt is stacked ontop of sched_ops_fair. Fortunately the
performance impact is minimal.

So scheduler classes are mainly a simplification of the design of the
scheduler - not just a mere facility to select multiple schedulers.
Their ability to also facilitate easier experimentation with schedulers
is 'just' a happy side-effect. So all in one: it's a fairly different
model from PlugSched (and that's why i didnt reuse PlugSched) - but
there's indeed overlap.

> [...] You'll also need this for -rt as well with regards to bandwidth
> scheduling.

yeah.

scheduler classes are also useful for other purposes like containers and
virtualization, hierarchical/group scheduling, security encapsulation,
etc. - features that can be on-demand layered, and which we dont
necessarily want to have enabled all the time.

> [...] Good to see that you're moving in this direction.

thanks! :)

Ingo