Re: [PATCH V6] powercap/drivers/idle_injection: Add an idle injection framework

From: Daniel Lezcano
Date: Wed Jun 13 2018 - 16:20:01 EST


On 13/06/2018 22:07, Pandruvada, Srinivas wrote:
> On Wed, 2018-06-13 at 22:00 +0200, Daniel Lezcano wrote:
>> On 13/06/2018 17:54, Pandruvada, Srinivas wrote:
>>> On Tue, 2018-06-12 at 14:00 +0200, Daniel Lezcano wrote:
>>>> Initially, the cpu_cooling device for ARM was changed by adding a
>>>> new
>>>> policy inserting idle cycles. The intel_powerclamp driver does a
>>>> similar action.
>>>>
>>>> Instead of implementing idle injections privately in the
>>>> cpu_cooling
>>>> device, move the idle injection code in a dedicated framework and
>>>> give
>>>> the opportunity to other frameworks to make use of it.
>>>>
>>>> The framework relies on the smpboot kthreads which handles via
>>>> its
>>>> main loop the common code for hotplugging and [un]parking.
>>>>
>>>> This code was previously tested with the cpu cooling device and
>>>> went
>>>> through several iterations. It results now in split code and API
>>>> exported in the header file. It was tested with the cpu cooling
>>>> device
>>>> with success.
>>>>
>>>
>>> May be I have missed, but I don't see any use of powercap sysfs.
>>>
>>> We created powercap sys that user space is presented a common
>>> interface
>>> for power capping. The RAPL driver was also submitted as cooling
>>> device
>>> before, but suggestion was to create this powercap.
>>>
>>> So if powercap interface is not enough then may be we should
>>> enhance
>>> that.
>>
>> We are creating a framework for idle injection. This framework can
>> then
>> be used by the cpu_cooling device, the power_clamp and in addition a
>> power capping for ARM (if it makes sense).
> But in this case, why in drivers/powercap folder as this is another
> framework?

I presented at OSPM 2nd the cpu idle cooling device. It is ARM specific
but has some similarities with the power clamp driver.

Some board come with power numbers defined in their DT and from there we
are able to compute a targeted power by injecting idle cycles.

As the idle injection allows to do also power capping, Rafael told me to
move that to a framework (may be better say a component with exported
services or library) and put it in drivers/powercap.

>From there we can implement a power capping, a cpu idle cooling device
and power_clamp (if the maintainer is willing to) using the same API.



--
<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