Re: [patch] CFS scheduler, -v5

Ingo Molnar
2007-04-23T02:56:49Z

* Nick Piggin <npiggin@suse.de> wrote:

> > the biggest user-visible change in -v5 are various interactivity
> > improvements (especially under higher load) to fix reported
> > regressions, and an improved way of handling nice levels. There's
> > also a new sys_sched_yield_to() syscall implementation for i686 and
> > x86_64.
> >
> > All known regressions have been fixed. (knock on wood)
>
> I think the granularity is still much too low. Why not increase it to
> something more reasonable as a default?

note that CFS's "granularity" value is not directly comparable to
"timeslice length":

> [ Note: while CFS's default preemption granularity is currently set to
> 5 msecs, this value does not directly transform into timeslices: for
> example two CPU-intense tasks will have effective timeslices of 10
> msecs with this setting. ]

also, i just checked SD: 0.46 defaults to 8 msecs rr_interval (on 1 CPU
systems), which is lower than the 10 msecs effective timeslice length
CVS-v5 achieves on two CPU-bound tasks.

(in -v6 i'll scale the granularity up a bit with the number of CPUs,
like SD does. That should get the right result on larger SMP boxes too.)

while i agree it's a tad too finegrained still, I agree with Con's
choice: rather err on the side of being too finegrained and lose some
small amount of throughput on cache-intense workloads like compile jobs,
than err on the side of being visibly too choppy for users on the
desktop.

Ingo