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 为例,有两个空闲状态:
# cd /sys/devices/system/cpu
超级会员免费看
订阅专栏 解锁全文
1394

被折叠的 条评论
为什么被折叠?



