Re: [RFC][PATCH 0/3] cpuidle,teo: Improve TEO tick decisions

From: Anna-Maria Behnsen
Date: Mon Jul 31 2023 - 07:47:05 EST


Hi,

On Fri, 28 Jul 2023, Peter Zijlstra wrote:

> Hi,
>
> Wanted to send this yesterday, but my home server died and took everything
> down :/
>
> These patches are lightly tested but appear to behave as expected.
>
>

As I was asked to see if the patches of Raphael improve the behavior, I
rerun the tests with Raphaels v2 as well as with Peters RFC patchset. Here
are the results (compared to upstream):

upstream raphael v2 peter RFC

Idle Total 2533 100.00% 1183 100.00% 5563 100.00%
x >= 4ms 1458 57.56% 1151 97.30% 3385 60.85%
4ms> x >= 2ms 91 3.59% 12 1.01% 133 2.39%
2ms > x >= 1ms 56 2.21% 3 0.25% 80 1.44%
1ms > x >= 500us 64 2.53% 1 0.08% 98 1.76%
500us > x >= 250us 73 2.88% 0 0.00% 113 2.03%
250us > x >=100us 76 3.00% 2 0.17% 106 1.91%
100us > x >= 50us 33 1.30% 4 0.34% 75 1.35%
50us > x >= 25us 39 1.54% 4 0.34% 152 2.73%
25us > x >= 10us 199 7.86% 4 0.34% 404 7.26%
10us > x > 5us 156 6.16% 0 0.00% 477 8.57%
5us > x 288 11.37% 2 0.17% 540 9.71%

tick_nohz_next_event()
count 8839790 6142079 36623


Raphaels Approach still does the tick_nohz_get_sleep_length() execution
unconditional. It executes ~5000 times more tick_nohz_next_event() as the
tick is stopped. This relation improved massively in Peters approach
(factor is ~7).

Thanks,

Anna-Maria