Re: CFS not suitable for desktop computers

Ray Lee
2009-05-03T23:25:31Z

On Sun, May 3, 2009 at 12:26 PM, Nico Schümann <spam@nico22.de> wrote:
> Dear Linux developers,
>
> I have been using Linux for some years now and for me, the best thing about
> 2.6 was that Linux ran desktop applications just smoothly. I was able to
> compile in the background, while all applications under X11 were just usable
> as if the machine was in idle mode. This was due to the priority of gcc
> being set to 30, for instance.
>
> Then, somewhere around 2.6.19 or 2.6.21, I do not remember exactly, the CFS
> was introduced, which removed all those "latency-based" scheduling policies.
> Now that I use 2.6.29 (I did not write earlier because I though it was a
> regression issue) I have to say: Linux is not as perfectly usable as before.
> End users do not want to experiment with nice levels and stuff, they just
> want that the system stays responsible even if there is a cpu-consuming
> process in the _background_. For me, this had been the greatest benefit from
> using Linux .
>
> Now what can we do, so that foreground applications are smoothly usable
> during hard cpu load? Is there any way to restore the old behaviour that
> cpu-consuming processes get a lower priority? It had always worked until
> this new scheduler was introduced.

My experience is exactly the opposite. Before CFS, my system was
completely unusable unless I manually controlled all nice levels in
the system for the big jobs. With CFS, everything just works, no
twiddling of nice levels necessary.

To get a useful response from the developers (who really do care about
latency issues), you should run a workload that causes unacceptable
behavior, and follow the suggestions below (taken from an old email
from Ingo Molnar):

----------
could you run this script while such a slowdown is really prominent:

http://people.redhat.com/mingo/cfs-scheduler/tools/cfs-debug-info.sh

and send me the output it generates? The output is the most useful if
you do this on a kernel that has CONFIG_SCHED_DEBUG=y and
CONFIG_SCHEDSTATS=y enabled.
----------

The problem may not be related to the scheduler at all, you realize,
but rather some other regression in another subsystem, such as the IO
scheduler or X or a driver, but hopefully the above script will be a
good starting point for those with the big brains to figure out what's
wrong.