Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

cpuidle: Respect the CPU system wakeup QoS limit for cpuidle

The CPU system wakeup QoS limit must be respected for the regular cpuidle
state selection. Therefore, let's extend the common governor helper
cpuidle_governor_latency_req(), to take the constraint into account.

Reviewed-by: Dhruva Gole <d-gole@ti.com>
Reviewed-by: Kevin Hilman (TI) <khilman@baylibre.com>
Tested-by: Kevin Hilman (TI) <khilman@baylibre.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Link: https://patch.msgid.link/20251125112650.329269-6-ulf.hansson@linaro.org
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>

authored by

Ulf Hansson and committed by
Rafael J. Wysocki
2b8d5947 99b42445

+4
+4
drivers/cpuidle/governor.c
··· 111 111 struct device *device = get_cpu_device(cpu); 112 112 int device_req = dev_pm_qos_raw_resume_latency(device); 113 113 int global_req = cpu_latency_qos_limit(); 114 + int global_wake_req = cpu_wakeup_latency_qos_limit(); 115 + 116 + if (global_req > global_wake_req) 117 + global_req = global_wake_req; 114 118 115 119 if (device_req > global_req) 116 120 device_req = global_req;