On 27/02/2019 20:58, Ulf Hansson wrote: > As it's now perfectly possible that a PM domain managed by genpd contains > devices belonging to CPUs, we should start to take into account the > residency values for the idle states during the state selection process. > The residency value specifies the minimum duration of time, the CPU or a > group of CPUs, needs to spend in an idle state to not waste energy entering > it. > > To deal with this, let's add a new genpd governor, pm_domain_cpu_gov, that > may be used for a PM domain that have CPU devices attached or if the CPUs > are attached through subdomains. > > The new governor computes the minimum expected idle duration time for the > online CPUs being attached to the PM domain and its subdomains. Then in the > state selection process, trying the deepest state first, it verifies that > the idle duration time satisfies the state's residency value. > > It should be noted that, when computing the minimum expected idle duration > time, we use the information about the next timer/tick that is stored in > the per CPU variable, cpuidle_devices, for the related CPUs. Future wise, > this deserves to be improved, as there are obviously more reasons to why a > CPU may be woken up from idle. > > Cc: Lina Iyer <ilina@xxxxxxxxxxxxxx> > Co-developed-by: Lina Iyer <lina.iyer@xxxxxxxxxx> > Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx> Acked-by: Daniel Lezcano <daniel.lezcano@xxxxxxxxxx> -- <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