Re: [PATCH v2 0/7] pmdomain/cpuidle-psci: Support s2idle/s2ram on PREEMPT_RT

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 5/27/2024 7:55 PM, Ulf Hansson wrote:
Updates in v2:
	- Rebased and fixed a small issue in genpd, see patch3.
	- Re-tested on v6.9-rt5 (PREEMPT_RT enabled)
	- Re-tested on v6.10-rc1 (for regressions, PREEMPT_RT disabled)

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.
This series is tested on qcm6490 with PREEMPT_RT enabled. For the series,

Tested-by: Raghavendra Kakarla <quic_rkakarla@xxxxxxxxxxx> # qcm6490 with PREEMPT_RT enabled

Tested APSS suspend and then SoC power collapse through s2idle and s2ram paths.
APSS and soc power collapse stats are incremented.
/sys/kernel/debug/pm_genpd/power-domain-cluster/idle_states
/sys/kernel/debug/qcom_stats/cxsd

Without this series, they are not incremented.

Thanks,
Raghavendra K.

Kind regards
Ulf Hansson


Ulf Hansson (7):
   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()
   pmdomain: core: Use dev_name() instead of kobject_get_path() in
     debugfs
   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               | 75 +++++++++++++++++++--------
  include/linux/pm_domain.h             |  5 +-
  4 files changed, 80 insertions(+), 36 deletions(-)





[Index of Archives]     [RT Stable]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux