RE: [PATCH] cpuidle-haltpoll: Disable kvm guest polling when mwait_idle is used

From: Thomas Gleixner
Date: Wed Dec 07 2022 - 06:41:25 EST


On Wed, Dec 07 2022 at 10:49, Rongqing Li wrote:
>> Before change, "sockperf ping-pong -i 127.0.0.1 -p 20001 --tcp " latency is:
>> sockperf: Summary: Latency is 6.245 usec
>>
>> this patch, disable cpuidle-haltpoll
>> sockperf: Summary: Latency is 4.671 usec
>>
>>
>> using arch_cpu_idle() in default_enter_idle()
>> sockperf: Summary: Latency is 4.285 usec
>>
>
> When I did upper tests, I taskset sockperf server and client to
> different cpus, so using arch_cpu_idle() in default_enter_idle() gets
> better result.
>
> I test unixbench also, find that Don't loading cpuidle-haltholl can
> get more performance on 8 cores (2 threads per core) intel cpu which
> cstate is disabled in host
>
> Don't load cpuidle-haltpoll:
> System Benchmarks Index Score 1995.8
> System Benchmarks Index Score 8482.8
>
> Replace default_idle with arch_cpu_idle, and load cpuidle-haltpoll, code like below:
> System Benchmarks Index Score 1971.4
> System Benchmarks Index Score 8467.7
>
> So I think we should not load cpuidle-haltpoll driver when guest has mwait

So in the above you got:

Driver loaded not modified: 6.245
Driver not loaded: 4.671 ~25%
Driver loaded modified: 4.285 ~30%

Now with unixbench:

Driver not loaded: 8482.8
Driver loaded modified: 8467.7 ~0.2%

So because of 0.2% delta you justify to throw away a 5% win?

If you really care about the 0.2%, then blacklist the module for your
use case.

Thanks,

tglx