Re: [PATCH] cpuidle: menu: use nr_running instead of cpuload forcalculating perf mult

From: Peter Zijlstra
Date: Mon Jun 04 2012 - 09:45:30 EST


On Mon, 2012-06-04 at 06:13 -0700, Arjan van de Ven wrote:
> On 6/4/2012 3:32 AM, Peter Zijlstra wrote:
> > On Mon, 2012-06-04 at 14:24 +0400, Vladimir Davydov wrote:
> >> rq->cpuload strongly depends on cgroup hierarchy. For example, if hundreds of
> >> tasks are running inside cpu:/test cgroup, the sum of cpuload over all cpus
> >> won't exceed 1024 (by default). That makes the cpuidle menu governor take wrong
> >> decisions, which can negatively affect overall performance.
> >>
> >> To cope this, use nr_running last seen in __update_cpu_load() instead of
> >> cpuload for calculating performance multiplier.
> >
> > What is cpuidle trying to do?
>
> what it is doing is trying to use "cpuload" as proxy for performance
> sensitivity. The higher the load, the longer the idle period (predicted)
> needs to be, for cpuidle to be willing to tolerate the latency of deeper
> C states.

Well, both are complete crap of course.. load has no relation to busy
what so ever anyway.

But what you're saying is that its trying to correlate latency with
load, higher loaded systems should receive less latency spikes. Why does
this make sense at all?

Or are we simply trying to guestimate the idle period and got confused?
Neither nr_running nor cpu_load have anything to do with how busy we
are.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/