[PATCH] cpuidle: warn and fixup on sanity check instead of rejecting the driver
Konrad Dybcio
konrad.dybcio at oss.qualcomm.com
Fri Nov 21 06:50:32 PST 2025
On 11/21/25 2:06 AM, Val Packett wrote:
> On Device Tree platforms, the latency and target residency values come
> directly from device trees, which are numerous and weren't all written
> with cpuidle invariants in mind. For example, qcom/hamoa.dtsi currently
> trips this check: exit latency 680000 > residency 600000.
>
> Instead of harshly rejecting the entire cpuidle driver with a mysterious
> error message, print a warning and set the target residency value to be
> equal to the exit latency.
>
> Fixes: 76934e495cdc ("cpuidle: Add sanity check for exit latency and target residency")
> Signed-off-by: Val Packett <val at packett.cool>
> ---
FWIW this is caused by:
--- hamoa.dtsi
cluster_c4: cpu-sleep-0 {
compatible = "arm,idle-state";
idle-state-name = "ret";
arm,psci-suspend-param = <0x00000004>;
entry-latency-us = <180>;
exit-latency-us = <500>;
min-residency-us = <600>;
};
which notably lacks 'wakeup-latency-us', which triggers this code path:
/*
* If wakeup-latency-us is missing, default to entry+exit
* latencies as defined in idle states bindings
*/
idle_state->exit_latency = entry_latency + exit_latency;
which fails this sanity check because 500+180=680 > 600
(which would have been good to note somewhere)
+Maulik can we fix up the numbers somehow?
Konrad
More information about the linux-arm-kernel
mailing list