Re: [REPORT] cfs-v4 vs sd-0.44

Ingo Molnar
2007-04-24T06:37:51Z

* Peter Williams <pwil3058@bigpond.net.au> wrote:

> > The cases are fundamentally different in behavior, because in the
> > first case, X hardly consumes the time it would get in any scheme,
> > while in the second case X really is CPU bound and will happily
> > consume any CPU time it can get.
>
> Which still doesn't justify an elaborate "points" sharing scheme.
> Whichever way you look at that that's just another way of giving X
> more CPU bandwidth and there are simpler ways to give X more CPU if it
> needs it. However, I think there's something seriously wrong if it
> needs the -19 nice that I've heard mentioned.

Gene has done some testing under CFS with X reniced to +10 and the
desktop still worked smoothly for him. So CFS does not 'need' a reniced
X. There are simply advantages to negative nice levels: for example
screen refreshes are smoother on any scheduler i tried. BUT, there is a
caveat: on non-CFS schedulers i tried X is much more prone to get into
'overscheduling' scenarios that visibly hurt X's performance, while on
CFS there's a max of 1000-1500 context switches a second at nice -10.
(which, considering the cost of a context switch is well under 1%
overhead.)

So, my point is, the nice level of X for desktop users should not be set
lower than a low limit suggested by that particular scheduler's author.
That limit is scheduler-specific. Con i think recommends a nice level of
-1 for X when using SD [Con, can you confirm?], while my tests show that
if you want you can go as low as -10 under CFS, without any bad
side-effects. (-19 was a bit too much)

> [...] You might as well just run it as a real time process.

hm, that would be a bad idea under any scheduler (including CFS),
because real time processes can starve other processes indefinitely.

Ingo