⚡ 深入内核电源管理
30 章 · 从入门到实战
📘 友好色系
01
电源管理概述
为什么需要电源管理?Linux电源管理架构全景图 (CPUFreq, CPUIdle, PM QOS, Runtime PM, Suspend/Resume)
02
CPUFreq核心框架
CPUFreq子系统架构 · 策略Policy · Governor (性能/省电/按需/用户空间/调度) · 驱动开发
03
CPUFreq Governor深入
ondemand工作原理 · interactive (Android) · schedutil (与调度器协同)
04
CPUIdle框架
CPUIdle子系统设计 · C-State (C0/C1/C2/C3…) · Ladder/Menu Governor · 驱动开发
05
CPUIdle Governor对比
Ladder (阶梯式) · Menu (基于预测) · TEO (Timer Events Oriented)
06
PM QOS框架
QOS是什么 · 请求类型 (CPU/内存/DMA延迟) · 接口与实现 · 与频率/空闲联动
07
Runtime PM (运行时电源管理)
核心思想 · 设备状态 (active/suspended) · API (pm_runtime_get/put) · 自动/强制挂起
08
Runtime PM实现细节
核心数据结构 · 状态机转换 · 自动挂起定时器 · 与系统Suspend/Resume交互
09
系统Suspend/Resume流程
Suspend To Idle (S2Idle) · Standby · Suspend To RAM (STR) · Suspend To Disk (STD/Hibernate)
10
Suspend/Resume核心代码分析
suspend_prepare/enter/resume流程 · 设备树遍历 · noirq阶段 · syscore操作
11
Hibernate (休眠) 实现
快照/恢复原理 · Swap分区管理 · Image写入/读取 · 与Suspend区别
12
设备电源管理回调
struct dev_pm_ops详解 · suspend/resume/freeze/thaw/poweroff/restore · 与Runtime PM关系
13
系统唤醒源与Wakeup Source框架
Wakeup Source数据结构 · register/activate/event · 自动/手动唤醒 · wake_lock (早期Android)
14
中断与唤醒
IRQ作为唤醒源 · enable_irq_wake/disable_irq_wake · 中断控制器 · GPIO唤醒配置
15
时钟与电源域管理
Clock Framework与PM · clk_enable/clk_disable联动 · Power Domain概念 · Generic PM Domain
16
Regulator (稳压器) 框架
Regulator子系统 · 电压/电流调节 · Consumer与Driver · 与CPU/设备频率协同
17
SoC级电源管理
PMU (电源管理单元) · Power Gate · DVFS · AVS (自适应电压调节)
18
Android电源管理特色
Android wakelock (已迁移到Kernel) · Early Suspend/Late Resume (已弃用) · Doze模式 · App Standby
19
电源管理与调度器
Schedutil Governor与CFS · Energy Aware Scheduling (EAS) · CPU Capacity · 任务放置与功耗优化
20
EAS (能耗感知调度) 深入
EAS核心算法 · Energy Model (功耗模型) · PD (Performance Domain) · 与Schedutil配合
21
CPU热插拔与电源管理
CPU Hotplug流程 · 在线/离线与功耗 · CPU Isolation (isolcpus) · 与CPUFreq/CPUIdle交互
22
设备树中的电源管理
电源管理节点 · power-domains属性 · clocks/regulators/vregs · operating-points-v2 (OPP表)
23
OPP (Operating Performance Points) 框架
OPP表结构 · API (dev_pm_opp_get/find/set_rate) · 与CPUFreq/Regulator绑定
24
电源管理调试与测试
/sys/power接口 · /sys/devices/…/power/ · tracepoint (power:cpu_frequency) · ftrace与power事件
25
电源管理性能分析工具
powertop · turbostat · perf stat power · schedstat · vmstat与功耗关联分析
26
电源管理驱动开发实战 (一)
编写CPUFreq驱动 (虚拟平台) · 注册freq_table · 实现target/target_index回调
27
电源管理驱动开发实战 (二)
编写CPUIdle驱动 · 注册idle states · 实现enter回调 · 与Menu Governor配合
28
电源管理驱动开发实战 (三)
实现Runtime PM支持 · pm_runtime_get/put · 配置自动挂起 · 测试挂起/唤醒
29
电源管理驱动开发实战 (四)
实现Suspend/Resume回调 · 设备树电源管理属性 · 验证系统睡眠/唤醒流程
30
电源管理未来趋势与挑战
异构计算 (big.LITTLE/DynamIQ) · AI/ML功耗预测 · CXL/PCIe功耗管理 · 低功耗物联网