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

Nick Piggin
2007-04-19T08:34:19Z

On Thu, Apr 19, 2007 at 08:38:10AM +0200, Ingo Molnar wrote:
>
> * Andrew Morton <akpm@linux-foundation.org> wrote:
>
> > > And yes, by fairly, I mean fairly among all threads as a base
> > > resource class, because that's what Linux has always done
> >
> > Yes, there are potential compatibility problems. Example: a machine
> > with 100 busy httpd processes and suddenly a big gzip starts up from
> > console or cron.
> >
> > Under current kernels, that gzip will take ages and the httpds will
> > take a 1% slowdown, which may well be exactly the behaviour which is
> > desired.
> >
> > If we were to schedule by UID then the gzip suddenly gets 50% of the
> > CPU and those httpd's all take a 50% hit, which could be quite
> > serious.
> >
> > That's simple to fix via nicing, but people have to know to do that,
> > and there will be a transition period where some disruption is
> > possible.
>
> hmmmm. How about the following then: default to nice -10 for all
> (SCHED_NORMAL) kernel threads and all root-owned tasks. Root _is_
> special: root already has disk space reserved to it, root has special
> memory allocation allowances, etc. I dont see a reason why we couldnt by
> default make all root tasks have nice -10. This would be instantly loved
> by sysadmins i suspect ;-)

I have no problem with doing fancy new fairness classes and things.

But considering that we _need_ to have per-thread fairness and that
is also what the current scheduler has and what we need to do well for
obvious reasons, the best path to take is to get per-thread scheduling
up to a point where it is able to replace the current scheduler, then
look at more complex things after that.