I see. I was sure I was missing something, since everyone around here are
praising these new schedulers. However, the example you provide is not so
much about fair/unfair, but about good/bad scheduler. I mean, if a process
consumes 48% CPU and the other one also consumes 48% (if each were running
alone), when you run them at the same time a fair scheduler would give them
48% to each, but an unfair one should also give them 48% to each. I still
fail to see the advantages of the "fair scheduler" design (even if I accept
that CFS is technically much better than mainline and thus work better in
your example).
I think you're not considering normal users here. Believe it or not, 99% of
desktop users in the world just click on a icon to watch a video. And they DO
want watch them, not use them for monitoring purposes (whatever that means).
I acknowledge it's impossible to be inside a user's mind to decide what it's
more important to him/her, but let's agree that clearly a audio/video player
should have by default a higher priority than an audio/video encoder, for the
simple reason that one task requires a certain amount of CPU to do the job
correctly, while the other one can do the job correctly regardless of how
much CPU time you give it. They are different in nature. What I don't know is
if knowing this should belong to the CPU scheduler or to the application
itself. But the bottom line is that on a desktop, tasks should receive
different -unfair- amounts of CPU time to work correctly. The "fair" concept
still looks wrong to me.
Nicing tasks might not be hard at all, but expecting normal users to do so is
not realistic. Either the scheduler or the applications should make these
decisions for them (us).
Thanks,
Alberto.
-