[V4,0/7] PM / Domains: Allow performance state propagation

Message ID cover.1544782279.git.viresh.kumar@linaro.org
Headers show
Series
  • PM / Domains: Allow performance state propagation
Related show

Message

Viresh Kumar Dec. 14, 2018, 10:15 a.m.
Hi,

This series adds performance state propagation support in genpd core.
The propagation happens from the sub-domains to their masters. More
details can be found in the individual commit logs.

This is tested on hikey960 by faking power domains in such a way that
the CPU devices have two power domains and both of them have the same
master domain. The CPU device, as well as its power domains have
"required-opps" property set and the performance requirement from the
CPU eventually configures all the domains (2 sub-domains and 1 master).

Based on opp/linux-next branch (which is 4.20-rc1 +
multiple-power-domain-support-in-opp-core + some OPP fixes).

Rajendra has already tested the previous version of this series and so I
have included his Tested-by for all patches.

V3->V4:
- dev_pm_opp_xlate_performance_state() returns negative values on error
  now.
- of_get_required_opp_performance_state() is also updated to do the
  same.
- _genpd_set_performance_state() is not called anymore from
  _genpd_reeval_performance_state() and we get rid of the extra
  declaration.
- Improved commit log in the last patch.
- dropped an unlikely.

V2->V3:
- Include Ulf's patch (sent separately earlier) with this series.
- The performance state update code doesn't rely anymore on the power
  on/off state of the genpd, it sets and propagates rate in all cases.
- That simplified a lot of code from V2 in _genpd_power_on().
- commit logs improved for few commits.
- s/mstate/master_state/
- and few more minor changes.

v1->V2:
- First patch (1/5) is new and an improvement to earlier stuff.
- Move genpd_status_on() check to _genpd_reeval_performance_state() from
  _genpd_set_performance_state().
- Improve dev_pm_opp_xlate_performance_state() to handle 1:1 pstate
  mapping between genpd and its master and also to fix a problem while
  finding the dst_table.
- Handle pstate=0 case properly.

--
viresh

Ulf Hansson (1):
  PM / Domains: Make genpd performance states orthogonal to the
    idlestates

Viresh Kumar (6):
  OPP: Improve _find_table_of_opp_np()
  OPP: Add dev_pm_opp_xlate_performance_state() helper
  OPP: Don't return 0 on error from
    of_get_required_opp_performance_state()
  PM / Domains: Save OPP table pointer in genpd
  PM / Domains: Factorize dev_pm_genpd_set_performance_state()
  PM / Domains: Propagate performance state updates

 drivers/base/power/domain.c | 202 ++++++++++++++++++++++++++----------
 drivers/opp/core.c          |  63 +++++++++++
 drivers/opp/of.c            |  24 +++--
 include/linux/pm_domain.h   |   6 ++
 include/linux/pm_opp.h      |  13 ++-
 5 files changed, 242 insertions(+), 66 deletions(-)

-- 
2.19.1.568.g152ad8e3369a

Comments

Rafael J. Wysocki Dec. 14, 2018, 10:18 a.m. | #1
On Fri, Dec 14, 2018 at 11:15 AM Viresh Kumar <viresh.kumar@linaro.org> wrote:
>

> Hi,

>

> This series adds performance state propagation support in genpd core.

> The propagation happens from the sub-domains to their masters. More

> details can be found in the individual commit logs.

>

> This is tested on hikey960 by faking power domains in such a way that

> the CPU devices have two power domains and both of them have the same

> master domain. The CPU device, as well as its power domains have

> "required-opps" property set and the performance requirement from the

> CPU eventually configures all the domains (2 sub-domains and 1 master).

>

> Based on opp/linux-next branch (which is 4.20-rc1 +

> multiple-power-domain-support-in-opp-core + some OPP fixes).

>

> Rajendra has already tested the previous version of this series and so I

> have included his Tested-by for all patches.


I'm assuming that this set will go in via the OPP tree.

Cheers,
Rafael
Viresh Kumar Dec. 14, 2018, 10:19 a.m. | #2
On 14-12-18, 11:18, Rafael J. Wysocki wrote:
> On Fri, Dec 14, 2018 at 11:15 AM Viresh Kumar <viresh.kumar@linaro.org> wrote:

> >

> > Hi,

> >

> > This series adds performance state propagation support in genpd core.

> > The propagation happens from the sub-domains to their masters. More

> > details can be found in the individual commit logs.

> >

> > This is tested on hikey960 by faking power domains in such a way that

> > the CPU devices have two power domains and both of them have the same

> > master domain. The CPU device, as well as its power domains have

> > "required-opps" property set and the performance requirement from the

> > CPU eventually configures all the domains (2 sub-domains and 1 master).

> >

> > Based on opp/linux-next branch (which is 4.20-rc1 +

> > multiple-power-domain-support-in-opp-core + some OPP fixes).

> >

> > Rajendra has already tested the previous version of this series and so I

> > have included his Tested-by for all patches.

> 

> I'm assuming that this set will go in via the OPP tree.


Yes.

-- 
viresh
Stephen Boyd Dec. 14, 2018, 6:05 p.m. | #3
Quoting Viresh Kumar (2018-12-14 02:15:26)
> Hi,

> 

> This series adds performance state propagation support in genpd core.

> The propagation happens from the sub-domains to their masters. More

> details can be found in the individual commit logs.

> 

> This is tested on hikey960 by faking power domains in such a way that

> the CPU devices have two power domains and both of them have the same

> master domain. The CPU device, as well as its power domains have

> "required-opps" property set and the performance requirement from the

> CPU eventually configures all the domains (2 sub-domains and 1 master).

> 

> Based on opp/linux-next branch (which is 4.20-rc1 +

> multiple-power-domain-support-in-opp-core + some OPP fixes).

> 


For the series

Reviewed-by: Stephen Boyd <sboyd@kernel.org>