Improving monitoring of power saving states
summary
ChromeOS measures CPU idle, module/package idle and system deep‑sleep residencies across x86 and ARM and finds current kernel interfaces fragmented: cpuidle often misreports and lacks atomic bulk reads, debugfs and raw registers vary by vendor and kernel, and the deepest sleep state and total time are missing. Workarounds include turboat reads raw registers (default 5s) and parallel user‑space readers, which duplicate implementations and still fail for slow hardware counters. Proposal favors extend perf to atomically read multiple counters so tools get consistent, low‑latency snapshots for second‑level telemetry.
AI-written summary · about
chapters (12)
- 0:00Introduction to power monitoring
- 0:22Why monitor idle states
- 1:27CPU idle state challenges
- 3:35Module idle state issues
- 5:19SoC idle state limitations
- 6:24S2 idle state problems
- 7:48Current patchwork and questions
- 9:15Measurement interval importance
- 10:42Desired granularity and solutions
- 11:43Using perf for atomic reads
- 12:46Debugging S2 idle failures
- 14:11Trends in S2 idle evolution
