Re: [PATCH v14 4/4] PM / Domains: Add genpd governor for CPUs

From: Rafael J. Wysocki
Date: Thu Apr 11 2019 - 16:44:44 EST


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!