On Thu, 19 Dec 2019 at 15:33, Sudeep Holla <sudeep.holla@xxxxxxx> wrote: > > On Wed, Dec 11, 2019 at 04:43:41PM +0100, Ulf Hansson wrote: > > When the hierarchical CPU topology is used and when a CPU is put offline, > > that CPU prevents its PM domain from being powered off, which is because > > genpd observes the corresponding attached device as being active from a > > runtime PM point of view. Furthermore, any potential master PM domains are > > also prevented from being powered off. > > > > To address this limitation, let's add add a new CPU hotplug state > > (CPUHP_AP_CPU_PM_STARTING) and register up/down callbacks for it, which > > allows us to deal with runtime PM accordingly. > > > > Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx> > > --- > > > > Changes in v4: > > - Folded in the patch to be part of the series. > > - Rebased on top of earlier changes. > > > > --- > > drivers/cpuidle/cpuidle-psci.c | 45 +++++++++++++++++++++++++++++++++- > > include/linux/cpuhotplug.h | 1 + > > 2 files changed, 45 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/cpuidle/cpuidle-psci.c b/drivers/cpuidle/cpuidle-psci.c > > index 6e7804e697ed..34a89d99bb0f 100644 > > --- a/drivers/cpuidle/cpuidle-psci.c > > +++ b/drivers/cpuidle/cpuidle-psci.c > > @@ -8,6 +8,7 @@ > > > > #define pr_fmt(fmt) "CPUidle PSCI: " fmt > > > > +#include <linux/cpuhotplug.h> > > #include <linux/cpuidle.h> > > #include <linux/cpumask.h> > > #include <linux/cpu_pm.h> > > @@ -31,6 +32,7 @@ struct psci_cpuidle_data { > > > > static DEFINE_PER_CPU_READ_MOSTLY(struct psci_cpuidle_data, psci_cpuidle_data); > > static DEFINE_PER_CPU(u32, domain_state); > > +static bool psci_cpuidle_use_cpuhp; > > > > [...] > > > + > > +static void psci_idle_init_cpuhp(void) > > +{ > > Can this be made __init along with the boolean psci_cpuidle_use_cpuhp ? Yeah, make sense! > > With that, > Reviewed-by: Sudeep Holla <sudeep.holla@xxxxxxx> Thanks! Kind regards Uffe