在轨迹中记录 CPU 频率

概览

Fuchsia 跟踪记录可以捕获支持动态电压和频率调节 (DVFS) 的设备上的 CPU 频率变化(在内核中称为“处理速率”)。这些变化在跟踪记录数据中显示为计数器。

这些轨道在分析使用 RPPM(相对性能电源管理)的设备的性能时特别有用,因为频率变化会显著影响执行时长。

捕获跟踪记录

Zircon 内核负责处理 CPU 频率跟踪,这是 kernel:power 类别的组成部分。启动跟踪记录时,请指定此类别:

ffx trace start --categories "kernel:power"

了解 CPU 频率计数器

捕获跟踪记录后,您可以在 Perfetto 中查看和分析 CPU 频率 数据:

  1. 在 Perfetto 中打开跟踪记录文件。
  2. 在轨道列表中,在内核进程下查找 Processing Rate:CPU:N 计数器(其中 N 是 CPU 核心索引,例如 Processing Rate:CPU:0)。

“Processing Rate”计数器显示的值表示 CPU 的运行频率相对于归一化比例:

  • 1000 表示 CPU 以最高频率 (100%) 运行。
  • 较低的值表示较低的频率(例如,值 524 表示 CPU 以大约 52.4% 的最高频率运行)。

如需计算实际频率,请将此百分比乘以 CPU 的最高频率。例如,如果最高频率为 2.7 GHz,则跟踪记录值 524 大致转换为 1.4 GHz(2.7 GHz 的 52.4%)。

这些值源自内核的内部处理速率乘数,按 1000 的比例缩放。

了解带宽需求计数器

kernel:power 类别还包含带宽需求计数器,即 Constant BW Demand:CPU:N 计数器(其中 N 是 CPU 核心索引)。

“Constant BW Demand”计数器表示核心的总截止时间利用率 (请求的 CPU 带宽)。这是具有特定时间要求的线程请求的 CPU 时间所占的比例。

与处理速率类似,这些计数器显示的值相对于归一化比例:

  • 1000 表示 CPU 核心的利用率最高 (100%)。
  • 较低的值表示较低的利用率(例如,值 750 表示截止时间线程请求核心总容量的 75%)。

需求与处理速率之间的关系

这两个计数器通常一起移动:

  • 恒定 BW 需求要求:它显示了 计划线程请求执行的工作量。
  • 处理速率响应:内核会根据此需求调整 CPU 频率 。

当带宽需求增加时,内核通常会提高处理速率(频率),以确保可以满足截止时间。当需求减少时,处理速率可能会降低。