[PATCH 0/2] cpuidle: idle_miss accounting fixes
From: Christian Loehle
Date: Fri Oct 30 2026 - 04:41:59 EST
These two fixes exclude timer-broadcast fallbacks from governor miss
accounting and respect the entry-time latency constraint when looking for
a better deeper state.
No functional change outside of sysfs above/below and tracing.
Patch 1: Exclude timer-broadcast fallbacks
When tick_broadcast_enter() fails, the core forces a shallower state.
Exclude these entries from governor miss accounting while retaining
residency, usage and governor feedback.
On Orion O6, traces with menu and TEO running schbench, tbench and hackbench
recorded 6930 cpu_idle_miss events on 8172 broadcast fallbacks before the
fix, and none on 7763 fallbacks with patch 1. All matched fallbacks entered
WFI.
Patch 2: Respect latency constraints for below misses
An enabled deeper state may violate the latency QoS constraint, causing a
false below miss. Save the governor latency limit at entry and exclude
states exceeding it, without an additional state-table walk. Disable flags
continue to be checked at exit as they are expected to change less frequently.
Christian Loehle (2):
cpuidle: Skip miss accounting for timer broadcast fallbacks
cpuidle: Respect latency constraints when accounting below misses
drivers/cpuidle/cpuidle.c | 16 +++++++++++++++-
1 file changed, 15 insertions(+), 1 deletion(-)
--
2.34.1