All of lore.kernel.org
 help / color / mirror / Atom feed
From: Daniel Lezcano <daniel.lezcano@linaro.org>
To: "Pandruvada, Srinivas" <srinivas.pandruvada@intel.com>,
	"viresh.kumar@linaro.org" <viresh.kumar@linaro.org>,
	"rjw@rjwysocki.net" <rjw@rjwysocki.net>
Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"peterz@infradead.org" <peterz@infradead.org>,
	"Zhang, Rui" <rui.zhang@intel.com>,
	"edubezval@gmail.com" <edubezval@gmail.com>,
	"linux-pm@vger.kernel.org" <linux-pm@vger.kernel.org>,
	"andrea.parri@amarulasolutions.com" 
	<andrea.parri@amarulasolutions.com>,
	"kevin.wangtao@linaro.org" <kevin.wangtao@linaro.org>,
	"leo.yan@linaro.org" <leo.yan@linaro.org>,
	"daniel.thompson@linaro.org" <daniel.thompson@linaro.org>,
	"javi.merino@kernel.org" <javi.merino@kernel.org>,
	"vincent.guittot@linaro.org" <vincent.guittot@linaro.org>
Subject: Re: [PATCH V6] powercap/drivers/idle_injection: Add an idle injection framework
Date: Wed, 13 Jun 2018 22:19:53 +0200	[thread overview]
Message-ID: <ac38f5d9-80d1-09f2-6f8e-c58085f9a32a@linaro.org> (raw)
In-Reply-To: <1528920447.48473.11.camel@intel.com>

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


WARNING: multiple messages have this Message-ID (diff)
From: Daniel Lezcano <daniel.lezcano@linaro.org>
To: "Pandruvada, Srinivas" <srinivas.pandruvada@intel.com>,
	"viresh.kumar@linaro.org" <viresh.kumar@linaro.org>,
	"rjw@rjwysocki.net" <rjw@rjwysocki.net>
Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"peterz@infradead.org" <peterz@infradead.org>,
	"Zhang, Rui" <rui.zhang@intel.com>,
	"edubezval@gmail.com" <edubezval@gmail.com>,
	"linux-pm@vger.kernel.org" <linux-pm@vger.kernel.org>,
	"andrea.parri@amarulasolutions.com"
	<andrea.parri@amarulasolutions.com>,
	"kevin.wangtao@linaro.org" <kevin.wangtao@linaro.org>,
	"leo.yan@linaro.org" <leo.yan@linaro.org>,
	"daniel.thompson@linaro.org" <daniel.thompson@linaro.org>,
	"javi.merino@kernel.org" <javi.merino@kernel.org>,
	"vincent.guittot@linaro.org" <vincent.guittot@linaro.org>
Subject: Re: [PATCH V6] powercap/drivers/idle_injection: Add an idle injection framework
Date: Wed, 13 Jun 2018 22:19:53 +0200	[thread overview]
Message-ID: <ac38f5d9-80d1-09f2-6f8e-c58085f9a32a@linaro.org> (raw)
In-Reply-To: <1528920447.48473.11.camel@intel.com>

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

  reply	other threads:[~2018-06-13 20:20 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-06-12 12:00 [PATCH V6] powercap/drivers/idle_injection: Add an idle injection framework Daniel Lezcano
2018-06-12 12:30 ` Peter Zijlstra
2018-06-12 12:44   ` Daniel Lezcano
2018-06-12 12:52     ` Peter Zijlstra
2018-06-12 13:02       ` Daniel Lezcano
2018-06-12 14:06         ` Peter Zijlstra
2018-06-12 14:37           ` Daniel Lezcano
2018-06-12 15:58             ` Peter Zijlstra
2018-06-12 17:02               ` Daniel Lezcano
2018-06-12 17:35                 ` Peter Zijlstra
2018-06-13  8:55                   ` Viresh Kumar
2018-06-13  9:03                     ` Daniel Lezcano
2018-06-13  9:10                       ` Viresh Kumar
2018-06-15  8:13                   ` Daniel Lezcano
2018-06-12 12:59 ` Peter Zijlstra
2018-06-13  8:24   ` Viresh Kumar
2018-06-12 14:23 ` Peter Zijlstra
2018-06-12 14:45   ` Daniel Lezcano
2018-06-12 14:26 ` Peter Zijlstra
2018-06-12 14:46   ` Daniel Lezcano
2018-06-13 15:54 ` Pandruvada, Srinivas
2018-06-13 15:54   ` Pandruvada, Srinivas
2018-06-13 20:00   ` Daniel Lezcano
2018-06-13 20:00     ` Daniel Lezcano
2018-06-13 20:07     ` Pandruvada, Srinivas
2018-06-13 20:07       ` Pandruvada, Srinivas
2018-06-13 20:19       ` Daniel Lezcano [this message]
2018-06-13 20:19         ` Daniel Lezcano
2018-06-13 20:32         ` Pandruvada, Srinivas
2018-06-13 20:32           ` Pandruvada, Srinivas
2018-06-13 20:35           ` Daniel Lezcano
2018-06-13 20:35             ` Daniel Lezcano
2018-06-13 21:27             ` Rafael J. Wysocki
2018-06-13 21:27               ` Rafael J. Wysocki

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ac38f5d9-80d1-09f2-6f8e-c58085f9a32a@linaro.org \
    --to=daniel.lezcano@linaro.org \
    --cc=andrea.parri@amarulasolutions.com \
    --cc=daniel.thompson@linaro.org \
    --cc=edubezval@gmail.com \
    --cc=javi.merino@kernel.org \
    --cc=kevin.wangtao@linaro.org \
    --cc=leo.yan@linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=peterz@infradead.org \
    --cc=rjw@rjwysocki.net \
    --cc=rui.zhang@intel.com \
    --cc=srinivas.pandruvada@intel.com \
    --cc=vincent.guittot@linaro.org \
    --cc=viresh.kumar@linaro.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.