[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20240429140531.210576-1-ulf.hansson@linaro.org>
Date: Mon, 29 Apr 2024 16:05:25 +0200
From: Ulf Hansson <ulf.hansson@...aro.org>
To: "Rafael J . Wysocki" <rafael@...nel.org>,
Sudeep Holla <sudeep.holla@....com>,
linux-pm@...r.kernel.org
Cc: Lorenzo Pieralisi <Lorenzo.Pieralisi@....com>,
Nikunj Kela <nkela@...cinc.com>,
Prasad Sodagudi <psodagud@...cinc.com>,
Maulik Shah <quic_mkshah@...cinc.com>,
Daniel Lezcano <daniel.lezcano@...aro.org>,
Krzysztof Kozlowski <krzysztof.kozlowski@...aro.org>,
Ulf Hansson <ulf.hansson@...aro.org>,
linux-rt-users@...r.kernel.org,
linux-arm-kernel@...ts.infradead.org,
linux-kernel@...r.kernel.org
Subject: [PATCH 0/6] pmdomain/cpuidle-psci: Support s2idle/s2ram on PREEMPT_RT
The hierarchical PM domain topology and the corresponding domain-idle-states
are currently disabled on a PREEMPT_RT based configuration. The main reason is
because spinlocks are turned into sleepable locks on PREEMPT_RT, which means
genpd and runtime PM can't be use in the atomic idle-path when
selecting/entering an idle-state.
For s2idle/s2ram this is an unnecessary limitation that this series intends to
address. Note that, the support for cpuhotplug is left to future improvements.
More information about this are available in the commit messages.
I have tested this on a Dragonboard 410c.
Kind regards
Ulf Hansson
Ulf Hansson (6):
pmdomain: core: Enable s2idle for CPU PM domains on PREEMPT_RT
pmdomain: core: Don't hold the genpd-lock when calling
dev_pm_domain_set()
cpuidle: psci-domain: Enable system-wide suspend on PREEMPT_RT
cpuidle: psci: Drop redundant assignment of CPUIDLE_FLAG_RCU_IDLE
cpuidle: psci: Enable the hierarchical topology for s2ram on
PREEMPT_RT
cpuidle: psci: Enable the hierarchical topology for s2idle on
PREEMPT_RT
drivers/cpuidle/cpuidle-psci-domain.c | 10 ++++--
drivers/cpuidle/cpuidle-psci.c | 26 +++++++++-----
drivers/pmdomain/core.c | 52 +++++++++++++++++++++++++--
include/linux/pm_domain.h | 5 ++-
4 files changed, 77 insertions(+), 16 deletions(-)
--
2.34.1
Powered by blists - more mailing lists