Linux 系统的电源管理与进程线程模型解析
1. CPUIdle 驱动
CPUIdle 与 CPUFreq 子系统类似,由属于板级支持包(BSP)的驱动和决定策略的调节器组成。但与 CPUFreq 不同的是,CPUIdle 的调节器在运行时不能更改,也没有用户空间调节器的接口。
CPUIdle 在/sys/devices/system/cpu/cpu0/cpuidle目录下展示每个空闲状态的信息,每个睡眠状态有一个子目录,命名为state0到stateN,state0是最轻的睡眠状态,stateN是最深的。需注意编号与 C 状态不匹配,且 CPUIdle 没有与 C0(运行)等效的状态。每个状态下有以下文件:
-desc:状态的简短描述
-disable:通过写入 1 来禁用此状态的选项
-latency:CPU 核心退出此状态恢复正常运行所需的时间,单位为微秒
-name:此状态的名称
-power:处于此空闲状态时消耗的功率,单位为毫瓦
-time:在此空闲状态下花费的总时间,单位为微秒
-usage:进入此状态的次数
以 BeagleBone Black 上的 AM335x SoC 为例,有两个空闲状态: </