On Thu, Apr 11, 2019 at 8:17 PM Ulf Hansson <ulf.hansson@xxxxxxxxxx> wrote: > > After some preceding changes, PM domains managed by genpd may contain > CPU devices, so idle state residency values should be taken into > account during the state selection process. [The residency value is > the minimum amount of time to be spent by a CPU (or a group of CPUs) > in an idle state in order to save more energy than could be saved > by picking up a shallower idle state.] > > For this purpose, add a new genpd governor, pm_domain_cpu_gov, to be > used for selecting idle states of PM domains with CPU devices attached > either directly or through subdomains. > > The new governor computes the minimum expected idle duration for all > online CPUs attached to a PM domain and its subdomains. Next, it > finds the deepest idle state whose target residency is within the > expected idle duration and selects it as the target idle state of > the domain. > > It should be noted that the minimum expected idle duration computation > is based on the closest timer event information stored in the per-CPU > variables cpuidle_devices for all of the CPUs in the domain. That > needs to be revisited in future, as obviously there are other reasons > why a CPU may be woken up from idle. > > Co-developed-by: Lina Iyer <lina.iyer@xxxxxxxxxx> > Acked-by: Daniel Lezcano <daniel.lezcano@xxxxxxxxxx> > Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx> > [ rjw: Changelog ] > Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx> Applied instead of the previous version, thanks!