Thread (21 messages) 21 messages, 8 authors, 2016-11-10

Re: [Discussion] Performance levels of power domains

From: "Rafael J. Wysocki" <rafael@kernel.org>
Date: 2016-10-27 14:48:32

On Wed, Oct 26, 2016 at 9:00 PM, Kevin Hilman [off-list ref] wrote:
Viresh Kumar [off-list ref] writes:
quoted
Hi Guys,

I wanted to involve you guys to get a discussion going
for a problem we want to solve, and so this mail.


Platform details:

Some of the Qualcom SoCs have the option to configure
the performance level of their Power Domains. The performance
levels are identified by integer values (lets say 0-9, 0 being the lowest).

Another M3 core handles the *real* voltage scaling based on the input
received (from software) in terms of these performance levels. The M3
core translates the levels into a range of voltages (corners) and selects
the right one by itself.

Software needs to provide the performance level for the entire domain
to the M3 core and so software also needs to handle performance requests
from all the devices that lie in the domain X and find a Performance Level P,
which can satisfy all the devices (normally the highest requrested level).


Problem statement:

As we aren't dealing with Voltages here, we can't really get the benefits
of the Regulators framework. The regulators are managed internally
by the M3 core. All we need is a way for software to comeout with inputs
for the M3 core.

The OPP framework can be used to include performance levels for
each OPP (frequency) entry.

But what framework can be used to select performance level of power
domains ?

By name, power-domain or genpd looks to be the right choice, but until
now it is only managing power-on and power-off of devices and domains.
genpd has also recently been extended to support multiple states, though
those are still idle states, not active (performance) states.
quoted
Should we extend that (along with runtime PM), or do something else?
Yes.  As I've suggested to qcom/linaro folks (off-list discussions), I
think extending genpd to handle performance states is a logical
extension.  Otherwise, you will be (re)inventing something that looks an
awful lot like genpd anyways.
On the Intel side we also have a mechanism to tell the processor about
the power/performance preference and it would be good to have a common
way to do it on all platforms and genpd doesn't look like a
particularly good place for that.
The other related framework is per-device PM QoS which could be used to
set constraints on specific devices, and the genpd governors would then
be responsible for looking at the constraints and changing states as
needed.
Right.

Let's talk about this at the LPC.

Thanks,
Rafael
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help