Re: [PATCH v2 2/4] powercap: idle_inject: Add prepare/complete callbacks

From: Daniel Lezcano
Date: Thu Dec 22 2022 - 04:50:39 EST



Hi Srinivas,


On 21/12/2022 21:58, srinivas pandruvada wrote:
Hi Daniel,

On Wed, 2022-12-21 at 15:52 +0100, Daniel Lezcano wrote:

Hi Srinivas,

On 30/11/2022 00:34, Srinivas Pandruvada wrote:
The actual idle percentage can be less than the desired because of
interrupts. Since the objective for CPU Idle injection is for
thermal
control, there should be some way to compensate for lost idle
percentage.
Some architectures provide interface to get actual idle percent
observed
by the hardware. So, the idle percent can be adjusted using the
hardware
feedback. For example, Intel CPUs provides package idle counters,
which
is currently used by intel powerclamp driver to adjust idle time.
Can you provide an example in terms of timings?

I'm not getting how 'prepare' would do by returning a positive value
to
skip the play_idle_precise() and what will do 'complete' ?

intel_powerclamp has a logic where if the current idle percentage
observed from hardware is more than the desired target inject percent,
it skips calling play_idle().

For example if you want to inject 50% idle and system is naturally idle
for 60%, there is no use of calling play_idle in the idle injection
framework to induce more idle. In this way a workload can run
immediately.

So trying to emulate the same logic by using powercap/idle_inject
framework. So prepare() callback in the intel_powerclamp driver calls
the existing function to check if idle-inject should skip for this time
or not.

The function 'prepare' has the 'cpu' parameter. How can it compare with the desired idle duration as this information is not passed to the callback ?


--
<http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs

Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog