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...