pluggable scheduler flamewar thread (was Re: Volanomark slows by 80% under CFS)

Chris Snook
2007-07-28T03:43:43Z

Andrea Arcangeli wrote:
> On Fri, Jul 27, 2007 at 08:31:19PM -0400, Chris Snook wrote:
>> I think Volanomark is being pretty stupid, and deserves to run slowly, but
>
> Indeed, any app doing what volanomark does is pretty inefficient.
>
> But this is not the point. I/O schedulers are pluggable to help for
> inefficient apps too. If apps would be extremely smart they would all
> use async-io for their reads, and there wouldn't be the need of
> anticipatory scheduler just for an example.

I'm pretty sure the point of posting a patch that triples CFS performance on a
certain benchmark and arguably improves the semantics of sched_yield was to
improve CFS. You have a point, but it is a point for a different thread. I
have taken the liberty of starting this thread for you.

> The fact is there's no technical explanation for which we're forbidden
> to be able to choose between CFS and O(1) at least at boot time.

Sure there is. We can run a fully-functional POSIX OS without using any block
devices at all. We cannot run a fully-functional POSIX OS without a scheduler.
Any feature without which the OS cannot execute userspace code is sufficiently
primitive that somewhere there is a device on which it will be impossible to
debug if that feature fails to initialize. It is quite reasonable to insist on
only having one implementation of such features in any given kernel build.

Whether or not these alternatives belong in the source tree as config-time
options is a political question, but preserving boot-time debugging capability
is a perfectly reasonable technical motivation.

-- Chris