Re: [RFT][PATCH v2 0/3] cpuidle: teo: Do not check timers unconditionally every time

Rafael J. Wysocki
2023-08-07T16:46:53Z

Hi Kajetan,

On Mon, Aug 7, 2023 at 4:04 PM Kajetan Puchalski
<kajetan.puchalski@arm.com> wrote:
>
> Hi Rafael,
>
> On Thu, Aug 03, 2023 at 10:57:04PM +0200, Rafael J. Wysocki wrote:
> > Hi Folks,
> >
> > This is the second iteration of:
> >
> > https://lore.kernel.org/linux-pm/4511619.LvFx2qVVIh@kreacher/
> >
> > with an additional patch.
> >
> > There are some small modifications of patch [1/3] and the new
> > patch causes governor statistics to play a role in deciding whether
> > or not to stop the scheduler tick.
> >
> > Testing would be much appreciated!
> >
> > Thanks!
> >
>
> My test results including the v2 are below.
>
> 1. Geekbench 6
>
> +---------------------------+---------------+-----------------+-------------------+----------------------+
> | metric | teo | teo_tick | teo_tick_rfc | teo_tick_rfc_v2 |
> +---------------------------+---------------+-----------------+-------------------+----------------------+
> | multicore_score | 3320.9 (0.0%) | 3303.3 (-0.53%) | 3293.6 (-0.82%) | 3302.3 (-0.56%) |
> | score | 1415.7 (0.0%) | 1417.7 (0.14%) | 1423.4 (0.54%) | 1425.8 (0.71%) |
> | CPU_total_power | 2421.3 (0.0%) | 2429.3 (0.33%) | 2442.2 (0.86%) | 2461.9 (1.67%) |
> | latency (AsyncTask #1) | 49.41μ (0.0%) | 51.07μ (3.36%) | 50.1μ (1.4%) | 50.76μ (2.73%) |
> | latency (labs.geekbench6) | 65.63μ (0.0%) | 77.47μ (18.03%) | 55.82μ (-14.95%) | 66.12μ (0.75%) |
> | latency (surfaceflinger) | 39.46μ (0.0%) | 36.94μ (-6.39%) | 35.79μ (-9.28%) | 40.36μ (2.3%) |
> +---------------------------+---------------+-----------------+-------------------+----------------------+
>
> +----------------------+-------------+------------+
> | tag | type | count_perc |
> +----------------------+-------------+------------+
> | teo | too deep | 2.034 |
> | teo_tick | too deep | 2.16 |
> | teo_tick_rfc | too deep | 2.071 |
> | teo_tick_rfc_v2 | too deep | 2.548 |
> | teo | too shallow | 15.791 |
> | teo_tick | too shallow | 20.881 |
> | teo_tick_rfc | too shallow | 20.337 |
> | teo_tick_rfc_v2 | too shallow | 19.886 |
> +----------------------+-------------+------------+
>
>
> 2. JetNews
>
> +-----------------+---------------+----------------+-----------------+-----------------+
> | metric | teo | teo_tick | teo_tick_rfc | teo_tick_rfc_v2 |
> +-----------------+---------------+----------------+-----------------+-----------------+
> | fps | 86.2 (0.0%) | 86.4 (0.16%) | 86.0 (-0.28%) | 86.6 (0.41%) |
> | janks_pc | 0.8 (0.0%) | 0.8 (-0.66%) | 0.8 (-1.37%) | 0.7 (-11.37%) |
> | CPU_total_power | 185.2 (0.0%) | 178.2 (-3.76%) | 182.2 (-1.6%) | 169.4 (-8.53%) | <- very interesting
> +-----------------+---------------+----------------+-----------------+-----------------+
>
> +----------------------+-------------+--------------------+
> | tag | type | count_perc |
> +----------------------+-------------+--------------------+
> | teo | too deep | 0.992 |
> | teo_tick | too deep | 0.945 |
> | teo_tick_rfc | too deep | 1.035 |
> | teo_tick_rfc_v2 | too deep | 1.127 |
> | teo | too shallow | 17.085 |
> | teo_tick | too shallow | 15.236 |
> | teo_tick_rfc | too shallow | 15.379 |
> | teo_tick_rfc_v2 | too shallow | 15.34 |
> +----------------------+-------------+--------------------+
>
> All in all looks pretty good. Unfortunately there's a slightly larger
> percentage of too deep sleeps with the v2 (which is probably where the
> increase in GB6 power usage comes from) but the lower jank percentage +
> substantially lower power usage for the UI workload are very promising.
>
> Since we don't care about GB6 power usage as much as UI power usage, I'd
> say that the patchset looks good :)
>
> Tested-by: Kajetan Puchalski <kajetan.puchalski@arm.com>

Thanks a lot, much appreciated!