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

Linus Torvalds
2007-04-18T19:24:12Z

On Wed, 18 Apr 2007, Ingo Molnar wrote:
>
> But note that most of the reported CFS interactivity wins, as surprising
> as it might be, were due to fairness between _the same user's tasks_.

And *ALL* of the CFS interactivity *losses* and complaints have been
because it did the wrong thing _between different user's tasks_

So what's your point? Your point was that when people try it out as a
single user, it is indeed fair. But that's no point at all, since it
totally missed _my_ point.

The problems with X scheduling is exactly that "other user" kind of thing.

The problem with kernel thread starvation due to user threads getting all
the CPU time is exactly the same issue.

As logn as you think that all threads are equal, and should be treated
equally, you CANNOT make it work well. People can say "ok, you can renice
X", but the whole problem stems from the fact that you're trying to be
fair based on A TOTALLY INVALID NOTION of what "fair" is.

> In the typical case, 99% of the desktop CPU time is executed either as X
> (root user) or under the uid of the logged in user, and X is just one
> task.

So? You are ignoring the argument again. You're totally bringing up a red
herring:

> Even with a bad hack of making X super-high-prio, interactivity as
> experienced by users still sucks without having fairness between the
> other 100-200 user tasks that a desktop system is typically using.

I didn't say that you should be *unfair* within one user group. What kind
of *idiotic* argument are you trying to put forth?

OF COURSE you should be fair "within the user group". Nobody contests that
the "other 100-200 user tasks" should be scheduled fairly _amongst
themselves_.

The only point I had was that you cannot just lump all threads together
and say "these threads are equally important". The 100-200 user tasks may
be equally important, and should get equal amounts of preference, but that
has absolutely _zero_ bearing on the _single_ task run in another
"scheduling group", ie by other users or by X.

I'm not arguing against fairness. I'm arguing against YOUR notion of
fairness, which is obviously bogus. It is *not* fair to try to give out
CPU time evenly!

Linus