The problem is not with "any workload," because that's not the issue,
the issue is the definition of "good" matching the administrator's
policy. And that's where the problem comes in. We have the default
scheduler, which favors interactive jobs. We have Con's staircase
scheduler which is part of an interactivity package. We have the
absolutely fair scheduler which is, well... fair, and keeps things
smooth and under reasonable load crisp.
There are other schedulers in the pluggable package, I did a doorknob
scheduler for 2.2 (everybody gets a turn, special case of round-robin).
I'm sure people have quietly hacked many more, which have never been
presented to public view.
The point is that no one CPU scheduler will satisfy the policy needs of
all users, any more than one i/o scheduler does so. We have realtime
scheduling, preempt both voluntary and involuntary, why should we not
have multiple CPU schedulers. If Linus has an objection to plugable
schedulers, then let's identify what the problem is and address it. If
that means one scheduler or the other must be compiled in, or all
compiled in and selected, so be it.
Unless you force the the definition of "good" to "what the default
scheduler does," there can be no "one" good one. Choice is good, no one
is calling for bizarre niche implementations, but we have at minimum
three CPU schedulers which as "best" for a large number of users.
(current default, and Con's fair and interactive flavors, before you ask).
And multiple schedulers are needed because the type of load, mix of
loads, and admin preference all require decisions at the policy which
can't be covered by a single solution. Or at least none of the existing
solutions, and I think letting people tune the guts of scheduler policy
is more dangerous than giving a selection of solutions. Linux has been
about choice all along, I hope it's nearly time for a solution better
than patches to be presented.
--
bill davidsen <davidsen@tmr.com>
CTO TMR Associates, Inc
Doing interesting things with small computers since 1979
-