Evolution of Suspend-to-Idle Support in The Linux Kernel
summary
Describes how suspend-to-idle is introduced in 2013 and implemented in Linux 3.13 then hardened through concrete fixes: the irq subsystem marks wakeup lines (added in Linux 3.19), periodic-timer noise is solved by timekeeping suspend (Linux 4.4), and the user interface moves to mem_sleep (Linux 4.10). Explains the surprising complexity from multiplexed ACPI SCI/EC interrupts, the added wakeup_irq and EC dispatch checks, and that the kernel workflow becomes a nontrivial “gray box” that mostly works but required several iterations.
AI-written summary · about
chapters (17)
- 0:00Introduction
- 2:04Sleep State
- 3:44SuspendTransition
- 5:05Use Cases
- 6:54State Motion
- 10:56Control Interface
- 13:55Properties
- 15:28History
- 21:17Irq Subsystem
- 23:12Linux 319
- 27:34Linux 443
- 28:06The Control Interface
- 29:27Device Links
- 34:57Linux 415
- 36:13Linux 415 Diagram
- 39:01Kernel Development Cycle
- 40:31Questions
related talks
36mLinux Power Management Features, Their Relationships and Interactions
36mLinux Power Management Features, Their Relationships and Interactions
25mMultiple system-wide low power-states
59mDevice power management and idle
47mIs Linux Suspend ready for the next decade
06mIsolation for broken hardware during system suspend
41mLinux Power Management Features & Their Interactions, Part 2
19mEnabling System Standby With RISC-V Platform
