Back To Schedule
Monday, October 26 • 12:00 - 12:50
Evolution of Suspend-to-Idle Support in the Linux Kernel - Rafael Wysocki, Intel

Sign up or log in to save this to your schedule, view media, leave feedback and see who's attending!

Feedback form is now closed.
Suspend-to-idle is a system-wide suspend variant which in principle does not rely on platform support. The suspend-to-idle control flow does not take non-boot CPUs offline and expects all CPUs to enter idle states through the idle loop, like in the working state of the system. However, it assumes that the scheduler tick will be stopped on all CPUs and the timekeeping will be suspended, which is a source of significant complications. It also expects system wakeup devices selected by user space to be functional and it needs to prevent all of the other interrupt sources from waking up the system. In some cases one interrupt source can signal both wakeup and non-wakeup events, so it is necessary to distinguish the former from the latter. All of that together causes the suspend-to-idle support code in the Linux kernel to be quite complex, especially on systems using ACPI, and that code has changed for multiple times in response to additional pieces of information on what is needed coming mostly from the users in the form of problem reports. I will describe the evolution of that code since its inception in 2013 and explain the reasons for making the changes in it.

avatar for Rafael Wysocki

Rafael Wysocki

Software Engineer, Intel
Rafael maintains the Linux kernel’s power management infrastructure and the core ACPI support code. He works at Intel and focuses on the mainline Linux kernel development. Rafael has been actively contributing to Linux since 2005, in particular to the kernel’s suspend/hibernate... Read More →

Monday October 26, 2020 12:00 - 12:50 GMT
Linux Systems Theater
  Linux Systems, Power Management