Re: [PATCH v5 1/3] cpuidle: psci: Call cpu_cluster_pm_enter() on the last CPU

Marc Zyngier
2022-02-16T15:58:47Z

On 2022-02-16 14:49, Sudeep Holla wrote:
> +Ulf (as you he is the author of cpuidle-psci-domains.c and can help
> you
> with that if you require)
>
> On Wed, Feb 16, 2022 at 09:28:28PM +0800, Shawn Guo wrote:
>> Make a call to cpu_cluster_pm_enter() on the last CPU going to low
>> power
>> state (and cpu_cluster_pm_exit() on the firt CPU coming back), so that
>> platforms can be notified to set up hardware for getting into the
>> cluster
>> low power state.
>>
>
> NACK. We are not getting the notion of CPU cluster back to cpuidle
> again.
> That must die. Remember the cluster doesn't map to idle states
> especially
> in the DSU systems where HMP CPUs are in the same cluster but can be in
> different power domains.
>
> You need to decide which PSCI CPU_SUSPEND mode you want to use first.
> If it is
> Platform Co-ordinated(PC), then you need not notify anything to the
> platform.
> Just request the desired idle state on each CPU and platform will take
> care
> from there.
>
> If for whatever reason you have chosen OS initiated mode(OSI), then
> specify
> the PSCI power domains correctly in the DT which will make use of the
> cpuidle-psci-domains and handle the so called "cluster" state
> correctly.

My understanding is that what Shawn is after is a way to detect the
"last
man standing" on the system to kick off some funky wake-up controller
that
really should be handled by the power controller (because only that guy
knows for sure who is the last CPU on the block).

There was previously some really funky stuff (copy pasted from the
existing
rpmh_rsc_cpu_pm_callback()), which I totally objected to having hidden
in
an irqchip driver.

My ask was that if we needed such information, and assuming that it is
possible to obtain it in a reliable way, this should come from the core
code, and not be invented by random drivers.

Thanks,

M.
--
Jazz is not dead. It just smells funny...