概览
Fuchsia 跟踪记录可以捕获支持动态电压和频率调节 (DVFS) 的设备上的 CPU 频率变化(在内核中称为“处理速率”)。这些变化在跟踪记录数据中显示为计数器。
这些轨道在分析使用 RPPM(相对性能电源管理)的设备的性能时特别有用,因为频率变化会显著影响执行时长。
捕获跟踪记录
Zircon 内核负责处理 CPU 频率跟踪,这是 kernel:power 类别的组成部分。启动跟踪记录时,请指定此类别:
ffx trace start --categories "kernel:power"了解 CPU 频率计数器
捕获跟踪记录后,您可以在 Perfetto 中查看和分析 CPU 频率 数据:
- 在 Perfetto 中打开跟踪记录文件。
- 在轨道列表中,在内核进程下查找 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 频率 。
当带宽需求增加时,内核通常会提高处理速率(频率),以确保可以满足截止时间。当需求减少时,处理速率可能会降低。