Re: [announce] CFS-devel, performance improvements

Roman Zippel
2007-09-13T12:14:00Z

Hi,

On Thu, 13 Sep 2007, Peter Zijlstra wrote:

> > There's a good reason
> > I put that much effort into maintaining a good, but still cheap average,
> > it's needed for a good task placement.
>
> While I agree that having this average is nice, your particular
> implementation has the problem that it quickly overflows u64 at which
> point it becomes a huge problem (a CPU hog could basically lock up your
> box when that happens).

If you look at the math, you'll see that I took the overflow into account,
I even expected it. If you see this effect in my implementation, it would
be a bug.

> > There is of course more than one
> > way to implement this, so you'll have good chances to simply reimplement
> > it somewhat differently, but I'd be surprised if it would be something
> > completely different.
>
> Currently we have 2 approximations in place:
>
> (leftmost + rightmost) / 2
>
> and
>
> leftmost + period/2 (where period should match the span of the tree)
>
> neither are perfect but they seem to work quite well.

You need more than two busy loops.
There's a reason I implemented a simple simulator first, so I could
actually study the scheduling behaviour of different load situations. That
doesn't protect from all surprises of course, but it gives me the
necessary confidence the scheduler will work reasonably even in weird
situations.
>From these tests I already know that your approximations only work with
rather simple loads.

bye, Roman