Re: [PATCH v5 15/23] PM: EM: Optimize em_cpu_energy() and remove division

From: Dietmar Eggemann
Date: Thu Jan 04 2024 - 11:30:25 EST


On 20/12/2023 09:42, Lukasz Luba wrote:
>
>
> On 12/12/23 18:50, Dietmar Eggemann wrote:
>> On 29/11/2023 12:08, Lukasz Luba wrote:

[...]

>>> With this optimization, the em_cpu_energy() should run faster on the Big
>>> CPU by 1.43x and on the Little CPU by 1.69x.
>>
>> Where are those precise numbers are coming from? Which platform was it?
>
> That was mainline big.Little board rockpi4 b w/ rockchip 3399, present

IMHO, you should mention the platform here so people don't wonder.

> quite a few commercial devices (e.g. chromebooks or plenty other seen in
> DT). The numbers are from measuring the time it takes to run this
> function em_cpu_cost() in a loop for mln of times. Thus, the instruction
> cache and data cache should be hot, but the operation would impact the
> different score.

[...]

>> Can you not keep the existing comment and only change:
>>
>> (a) that ps->cap id ps->performance in (2) and
>>
>> (b) that:
>>
>>            *             ps->power * cpu_max_freq   cpu_util
>>            *   cpu_nrg = ------------------------ * ---------     (3)
>>            *                    ps->freq            scale_cpu
>>
>>                          <---- (old) ps->cost --->
>>
>>      is now
>>
>>                  ps->power * cpu_max_freq       1
>>      ps-> cost = ------------------------ * ----------
>>                          ps->freq            scale_cpu
>>
>>                  <---- (old) ps->cost --->
>>
>> and (c) that (4) has changed to:
>>
>>           *   pd_nrg = ps->cost * \Sum cpu_util                   (4)
>>
>> which avoid the division?
>>
>> Less changes is always much nicer since it makes it so much easier to
>> detect history and review changes.
>
> I'm open to change that, but I will have to contact you offline
> what you mean. This comment section in code is really tricky to
> handle right.

OK, the changes you showed me offline LGTM.

[...]