概览
Fuchsia 跟踪可以捕获支持动态电压和频率调节 (DVFS) 的设备上的 CPU 频率变化(在内核中称为“处理速率”)。这些更改会以计数器的形式显示在轨迹数据中。
在分析使用 RPPM(相对性能电源管理)的设备的性能时,这些轨道特别有用,因为频次变化会显著影响执行时长。
捕获轨迹
Zircon 内核会处理 CPU 频率跟踪,这是 kernel:power 类别的组成部分。在开始轨迹时指定此类别:
ffx trace start --categories "kernel:power"了解 CPU 频率计数器
捕获跟踪记录后,您可以在 Perfetto 中查看和分析 CPU 频率数据:
- 在 Perfetto 中打开轨迹文件。
- 在轨道列表中,找到内核进程下的 Rate:CPU:N 指标(其中 N 是 CPU 核心指数,例如
Rate:CPU:0)。
“速率”计数器显示的值表示 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 核心指数)。
“恒定带宽需求”计数器表示核心的总截止时间利用率(请求的 CPU 带宽)。这是具有特定时间要求的线程所请求的 CPU 时间的比例。
与处理速率类似,这些计数器显示的值是相对于归一化比例的:
- 值 1000 表示 CPU 核心处于最高利用率 (100%)。
- 值越低,表示利用率越低(例如,值为 750 表示截止时间线程请求了核心总容量的 75%)。
需求与处理速率之间的关系
这两个计数器通常会一起移动:
- 恒定带宽需求是需求:它显示了调度线程请求执行的工作量。
- 处理速率是响应:内核会根据此需求调整 CPU 频率。
当带宽需求增加时,内核通常会提高处理速率(频率),以确保能够满足截止期限。当需求减少时,处理速率可能会降低。