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

From: Arjan van de Ven
Date: Mon Jun 04 2012 - 09:48:07 EST


On 6/4/2012 6:45 AM, Peter Zijlstra wrote:
> 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.

it's not about busy, it's about performance sensitive.
it's not a super nice proxy, no argument, but it's one of the few long
term ones we have.


> 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?

higher loaded systems are assumed to be more sensitive to performance
loss, and thus the cpuidle code will be more conservative in adding
performance loss (via the exit latency) on such systems.

>
> 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.

no this has nothing to do with the guestimation.
--
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/