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

Matt Mackall
2007-04-17T22:21:47Z

On Tue, Apr 17, 2007 at 11:24:22AM +0200, Ingo Molnar wrote:
>
> * William Lee Irwin III <wli@holomorphy.com> wrote:
>
> > [...] Also rest assured that the tone of the critique is not hostile,
> > and wasn't meant to sound that way.
>
> ok :) (And i guess i was too touchy - sorry about coming out swinging.)
>
> > Also, given the general comments it appears clear that some
> > statistical metric of deviation from the intended behavior furthermore
> > qualified by timescale is necessary, so this appears to be headed
> > toward a sort of performance metric as opposed to a pass/fail test
> > anyway. However, to even measure this at all, some statement of
> > intention is required. I'd prefer that there be a Linux-standard
> > semantics for nice so results are more directly comparable and so that
> > users also get similar nice behavior from the scheduler as it varies
> > over time and possibly implementations if users should care to switch
> > them out with some scheduler patch or other.
>
> yeah. If you could come up with a sane definition that also translates
> into low overhead on the algorithm side that would be great!

How's this:

If you're running two identical CPU hog tasks A and B differing only by nice
level (Anice, Bnice), the ratio cputime(A)/cputime(B) should be a
constant f(Anice - Bnice).

Other definitions make things hard to analyze and probably not
well-bounded when confronted with > 2 tasks.

I -think- this implies keeping a separate scaled CPU usage counter,
where the scaling factor is a trivial exponential function of nice
level where f(0) == 1. Then you schedule based on this scaled usage
counter rather than unscaled.

I also suspect we want to keep the exponential base small so that the
maximal difference is 10x-100x.

--
Mathematics is the supreme nostalgia of our time.