~/talk

Why Won't My CPU Sleep? Debugging CPUIdle Mysteries on ARM SoCs

Talkat Open Source Summit Europe 2025 · on Monday, 2025-08-25· at 09:00· Emerald Room (Level 1)· [security]
links:none on file
links:none on file
slides:none on file

ARM64 systems fail to reach or exit deep CPU idle when device tree idle states are missing or firmware rejects PSCI parameters; adding a DT idle entry and implementing PSCI validate_power_state in Trusted Firmware fixes the first failure, while adding an always-on clock event provider and extending the timer driver lets CPUIdle pick deeper states despite a local-timer-stop flag. Debugging uses trace-cmd + KernelShark, Perfetto, trace_printk and GPIO logic-analyzer toggles; the fixes are upstream and suspend-to-idle then works (zero wake activity in traces).

AI-written summary · about

  1. 0:00Introduction and context
  2. 3:16CPU idle fundamentals
  3. 4:30Case study one: initial setup
  4. 14:55PSCI and firmware basics
  5. 18:03Case study two: deep sleep
  6. 30:41Device tree configuration
  7. 36:26Case study three: wakeup
  8. 38:50Debugging tools and methods
  9. 41:58Future work and conclusion
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.