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

From: Lukasz Luba
Date: Thu Jan 04 2024 - 11:55:27 EST




On 1/4/24 16:30, Dietmar Eggemann wrote:
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.

[...]


All good then. Thank you for the comments. I'll send v6.