Re: [patch v5 09/15] sched: add power aware scheduling in fork/exec/wake

Peter Zijlstra
2013-02-22T08:54:57Z

On Thu, 2013-02-21 at 22:40 +0800, Alex Shi wrote:
> > The name is a secondary issue, first you need to explain why you
> think
> > nr_running is a useful metric at all.
> >
> > You can have a high nr_running and a low utilization (a burst of
> > wakeups, each waking a process that'll instantly go to sleep again),
> or
> > low nr_running and high utilization (a single process cpu bound
> > process).
>
> It is true in periodic balance. But in fork/exec/waking timing, the
> incoming processes usually need to do something before sleep again.

You'd be surprised, there's a fair number of workloads that have
negligible runtime on wakeup.

> I use nr_running to measure how the group busy, due to 3 reasons:
> 1, the current performance policy doesn't use utilization too.

We were planning to fix that now that its available.

> 2, the power policy don't care load weight.

Then its broken, it should very much still care about weight.

> 3, I tested some benchmarks, kbuild/tbench/hackbench/aim7 etc, some
> benchmark results looks clear bad when use utilization. if my memory
> right, the hackbench/aim7 both looks bad. I had tried many ways to
> engage utilization into this balance, like use utilization only, or
> use
> utilization * nr_running etc. but still can not find a way to recover
> the lose. But with nr_running, the performance seems doesn't lose much
> with power policy.

You're failing to explain why utilization performs bad and you don't
explain why nr_running is better. That things work simply isn't good
enough, you have to have at least a general idea (but much preferable a
very good idea) _why_ things work.