【原创】Linux Suspend流程分析
背景 Read the fucking source code! --By 鲁迅 A picture is worth a thousand words. --By 高尔基 说明: Kernel版本:4.14 ARM64处理器 使用工具:Source Insight 3.5, Visio 1. 介绍 Linux Kernel支持四种 Sleep State : Suspend-to-Idle 纯软件,轻量级的Suspend操作,它会 freeze user space , suspend the timekeeping , put all I/O devices into low-power states 。 处于S2Idle状态下时,设备中断就可以将其唤醒。 Standby 除了实现 Suspend-to-Idle 时的操作外,还会将 nonboot CPUs 置于 offline 状态,以及 suspend all low-level system functions 。由于系统核心逻辑单元保持上电状态,操作的状态不会丢失,也会很容易恢复到之前的状态。 处于 Standby 状态时,可能需要依赖平台来设置唤醒源。 Suspend-to-RAM STR/S2RAM 时,除了 Memory 需要进行自刷新来保持数据外,其他的所有设备都需要进入到低功耗状态。除了实现 Standby