AMD Zen 2处理器L3缓存访问事件perf统计及分片监控咨询
AMD Zen2处理器L3缓存perf事件统计问题解答
1. 事件计数恒为0的原因
计数恒为0主要有两个核心原因:
- 参考文档匹配错误:你查阅的是Zen1架构(Family 17h Models 00h-0Fh)的PPR文档,而Zen2属于Family 17h Models 30h-3Fh,二者的性能事件定义存在差异
- 事件类型识别错误:L3缓存访问属于uncore非核心事件,不归属于单个CPU核心的PMU(性能监控单元),你使用核心PMU的原始事件编码
r8001采集非核心事件,自然无法获取到有效计数。
2. Zen2正确统计L3缓存访问的方法
perf已经预先封装了AMD平台的uncore L3事件,不需要手动编写原始事件编码,直接使用封装后的事件即可:
# 全系统所有L3分片总访问次数统计 perf stat -a -e l3_request_g1.caching_l3_cache_accesses -- sleep 10
如果需要使用原始编码配置,语法如下:
perf stat -a -e amd_l3/event=0x01,umask=0x80/ -- sleep 10
3. 指定L3分片监控的方法
perf原生支持指定L3分片监控,操作步骤如下:
- 首先列出当前系统所有可用的L3分片PMU设备:
输出结果类似ls /sys/devices/ | grep amd_l3amd_l3_0、amd_l3_1,每个编号对应一个物理L3缓存分片 - 监控指定分片的事件时,直接在事件前指定对应PMU编号即可,例如统计0号L3分片的访问次数:
perf stat -a -e amd_l3_0/event=0x01,umask=0x80/ -- sleep 10
内容的提问来源于stack exchange,提问作者user1165136
相关产品推荐
相关产品推荐

