On Tue, Nov 25, 2025 at 12:26 PM Ulf Hansson <ulf.hansson@linaro.org> wrote:
>
> Changes in v4:
> - Add Kconfig help text. (Dhruva)
> - Fixed grammar in documentation patch (Dhruva)
> - Added reviewed/tested-by tags from Dhruva/Kevin. I leave Rafael to add
> his tags when applying.
>
> Changes in v3:
> - Take new the new QoS limit into account for cpuidle too (Rafael).
> - Add a new Kconfig for the new QoS interface (Rafael)
> - Improved the documentation (Dhruva)
> - Clarified commit messages and added acks.
>
> Changes in v2:
> - Limit the new QoS to CPUs and make some corresponding renaming of the
> functions along with name of the device node for user space.
> - Make sure we deal with the failure/error path correctly when there are
> no state available for s2idle.
> - Add documentation.
>
> Some platforms supports multiple low power states for CPUs that can be used
> when entering system-wide suspend and s2idle in particular. Currently we are
> always selecting the deepest possible state for the CPUs, which can break the
> system wakeup latency constraint that may be required for a use case.
>
> Therefore, this series suggests to introduce a new interface for user space,
> allowing us to specify the CPU system wakeup QoS limit. The QoS limit is then
> taken into account when selecting a suitable low power state for s2idle/cpuidle.
>
> Kind regards
> Ulf Hansson
>
> Ulf Hansson (6):
> PM: QoS: Introduce a CPU system wakeup QoS limit
> pmdomain: Respect the CPU system wakeup QoS limit for s2idle
> pmdomain: Respect the CPU system wakeup QoS limit for cpuidle
> sched: idle: Respect the CPU system wakeup QoS limit for s2idle
> cpuidle: Respect the CPU system wakeup QoS limit for cpuidle
> Documentation: power/cpuidle: Document the CPU system wakeup latency
> QoS
>
> Documentation/admin-guide/pm/cpuidle.rst | 9 ++
> Documentation/power/pm_qos_interface.rst | 9 +-
> drivers/cpuidle/cpuidle.c | 12 +--
> drivers/cpuidle/governor.c | 4 +
> drivers/pmdomain/core.c | 10 ++-
> drivers/pmdomain/governor.c | 33 ++++++-
> include/linux/cpuidle.h | 6 +-
> include/linux/pm_domain.h | 1 +
> include/linux/pm_qos.h | 9 ++
> kernel/power/Kconfig | 11 +++
> kernel/power/qos.c | 106 +++++++++++++++++++++++
> kernel/sched/idle.c | 12 +--
> 12 files changed, 203 insertions(+), 19 deletions(-)
>
> --
Applied as 6.19 material, thanks!