Skip to main content
CPU 空闲功耗管理(即空闲功耗管理)在设备空闲时使 CPU 核心保持在适当的休眠状态,以高效利用能源。

CPU 休眠状态

CPU 核心支持多种休眠状态。每种休眠状态都有相应的进入和退出延迟以及不同的功耗水平。核心休眠状态的选择取决于该核心多久后需要再次执行任务。 每个 CPU 休眠状态由一个 C-state 编号表示。每个 C-state 关联两个关键参数:
  • 节能:选择更高的 C-state 时 CPU 的节能效果会提升,但会导致唤醒延迟增加。
  • 唤醒延迟:这是 CPU 核心从休眠状态切换到运行状态所需的时间。
例如,如下图所示,更深的休眠状态(C4)具有更高的唤醒延迟和更低的功耗。 功耗与延迟的权衡 图:功耗与延迟的权衡
使用以下命令查看 CPU 休眠状态的延迟:
注意 其中,<X> 表示核心 ID,范围为 0 到 7,<Y> 是 Linux 功耗状态的索引(0、1、2)。下表定义了 Linux 功耗状态。 您可以研究和配置休眠状态,以调优应用,实现功耗与性能的平衡。 下表列出了支持的 CPU 休眠状态及其关联的 C-state 编号: 注意 CPU 休眠状态默认已启用。
表:QCS6490/QCS5430 支持的核心功耗状态

启用和禁用低功耗管理状态

下表列出了如何配置 CPU 休眠状态: 注意 如果更改休眠状态的配置,应检查其对设备功耗的影响。 表:启用/禁用 CPU 功耗状态的命令
CPU 休眠状态说明Linux 功耗状态
S0禁用echo 0 > /sys/devices/system/cpu/cpuX/cpuidle/state0/disable
启用echo 1 > /sys/devices/system/cpu/cpuX/cpuidle/state0/disable
S1禁用echo 0 > /sys/devices/system/cpu/cpuX/cpuidle/state1/disable
启用echo 1 > /sys/devices/system/cpu/cpuX/cpuidle/state1/disable
S2禁用echo 0 > /sys/devices/system/cpu/cpuX/cpuidle/state2/disable
启用echo 1 > /sys/devices/system/cpu/cpuX/cpuidle/state2/disable
注意 <X> 表示核心 ID,范围可为 0 到 11。

验证 CPU 空闲统计信息

要检查 CPU 核心休眠状态的统计信息,请运行以下命令:
其中,<X> 是核心 ID,范围为 0 到 7,<Y> 是 Linux 功耗状态的索引(0、1 和 2)。 以下是输出示例: cd /sys/devices/system/cpu grep -r “” cpu*/cpuidle/*/usage cpu0/cpuidle/state0/usage:97681 cpu0/cpuidle/state1/usage:95 cpu1/cpuidle/state0/usage:180055 cpu1/cpuidle/state1/usage:59 注意 usage 计数表示 cpu<X> 进入某个 Linux 功耗状态的次数。

后续步骤