Re: [PATCH V2 0/3] x86,idle: Enhance cpuidle prediction to handleits failure

From: Daniel Lezcano
Date: Mon Sep 17 2012 - 16:32:38 EST


On 09/18/2012 05:30 AM, Youquan Song wrote:
>>> One case is turbostat utility (tools/power/x86/turbostat) at kernel 3.3 or early
>>> . turbostat utility will read 10 registers one by one at Sandybridge, so it will
>>> generate 10 IPIs to wake up idle CPUs. So cpuidle menu governor will predict it
>>> is repeat mode and there is another IPI wake up idle CPU soon, so it keeps idle
>>> CPU stay at C1 state even though CPU is totally idle. However, in the turbostat
>>> , following 10 registers reading is sleep 5 seconds by default, so the idle CPU
>>> will keep at C1 for a long time though it is idle until break event occurs.
>>> In a idle Sandybridge system, run "./turbostat -v", we will notice that deep
>>> C-state dangles between "70% ~ 99%". After patched the kernel, we will notice
>>> deep C-state stays at >99.98%.
>>
>> Is there an impact on performances ?
>
> In this case, turbostat is utility to measure cpu idle status and itself
> also is a workload to system. Its purpose is that show cpu C-state
> information every 5 seconds. After patched the kernel, it also does
> the same thing as usual. So I think the performance has no/little impact.
>
> I do not find performance impact in my tests. If you performance impact cases or
> suggestions, I will be very glad to try.

There is simple program [1] I wrote specifically for cpuidle.
It does not do benchmarking. Maybe you can reuse it or modify it to fit
your needs.

Hope that helps.

-- Daniel

[1]
http://git.linaro.org/gitweb?p=people/hongbozhang/pm-qa.git;a=blob;f=cpuidle/cpuidle_killer.c;h=5e7320f1e1679fdf4caa15d9b729534425b49bc6;hb=03e09b72a473032e434c811b2500f63fb65260c4

--
<http://www.linaro.org/> Linaro.org â Open source software for ARM SoCs

Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog

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