| From: |
| Ulf Hansson <ulf.hansson-AT-linaro.org> |
| To: |
| "Rafael J . Wysocki" <rafael-AT-kernel.org>, linux-pm-AT-vger.kernel.org |
| Subject: |
| [PATCH v2 0/4] PM: QoS: Introduce a CPU system-wakeup QoS limit for s2idle |
| Date: |
| Thu, 16 Oct 2025 17:19:20 +0200 |
| Message-ID: |
| <20251016151929.75863-1-ulf.hansson@linaro.org> |
| Cc: |
| Vincent Guittot <vincent.guittot-AT-linaro.org>, Peter Zijlstra <peterz-AT-infradead.org>, Kevin Hilman <khilman-AT-baylibre.com>, Pavel Machek <pavel-AT-kernel.org>, Len Brown <len.brown-AT-intel.com>, Daniel Lezcano <daniel.lezcano-AT-linaro.org>, Saravana Kannan <saravanak-AT-google.com>, Maulik Shah <quic_mkshah-AT-quicinc.com>, Prasad Sodagudi <psodagud-AT-quicinc.com>, Dhruva Gole <d-gole-AT-ti.com>, Ulf Hansson <ulf.hansson-AT-linaro.org>, linux-kernel-AT-vger.kernel.org |
| Archive-link: |
| Article |
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 some use-cases.
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.
Kind regards
Ulf Hansson
Ulf Hansson (4):
PM: QoS: Introduce a CPU system-wakeup QoS limit
pmdomain: Respect the CPU system-wakeup QoS limit during s2idle
sched: idle: Respect the CPU system-wakeup QoS limit for s2idle
Documentation: power/cpuidle: Document the CPU system-wakeup latency
QoS
Documentation/admin-guide/pm/cpuidle.rst | 7 ++
Documentation/power/pm_qos_interface.rst | 9 +-
drivers/cpuidle/cpuidle.c | 12 +--
drivers/pmdomain/core.c | 10 ++-
drivers/pmdomain/governor.c | 27 ++++++
include/linux/cpuidle.h | 6 +-
include/linux/pm_domain.h | 1 +
include/linux/pm_qos.h | 5 ++
kernel/power/qos.c | 102 +++++++++++++++++++++++
kernel/sched/idle.c | 12 +--
10 files changed, 173 insertions(+), 18 deletions(-)
--
2.43.0