You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在旧内核上统计Offcore PMU事件OCR.DEMAND_RFO.L3_MISS_LOCAL_DRAM.ANY_SNOOP?

如何在Cascade Lake服务器上收集OCR.DEMAND_RFO.L3_MISS_LOCAL_DRAM.ANY_SNOOP事件

我需要在Cascade Lake服务器上收集OCR.DEMAND_RFO.L3_MISS_LOCAL_DRAM.ANY_SNOOP事件,使用的CPU为Intel(R) Xeon(R) Gold 6230R(内核版本4.18.0),也试过Intel(R) Xeon(R) Gold 5218搭配5.14.0内核,结果无差异。我的perf版本为3.10.0-693.5.2.el7.x86_64.debug。

尝试1:直接使用perf收集

该事件在5.14内核的perf事件定义中得到支持,但我的旧内核无法让perf直接识别这个Offcore事件。执行命令perf list | grep OCR.DEMAND_RFO.L3_MISS_LOCAL_DRAM.ANY_SNOOP无输出。

更新:perf将服务器识别为Skylake,但即使是Skylake的perf事件定义里的相关事件也无法输出:

$ cat /sys/devices/cpu/caps/pmu_name
skylake

# perf list | grep offcore
[empty]

# perf list | grep rfo
[empty]

尝试2:使用PCM-raw收集数据

我按照PCM raw模式教程操作,但收集到的数据全为0:

# ./emon -C OCR.DEMAND_RFO.L3_MISS_LOCAL_DRAM.ANY_SNOOP --dry-run -m
Event Set 0
        OCR.DEMAND_RFO.L3_MISS_LOCAL_DRAM.ANY_SNOOP (PerfEvtSel0 (0x186) = 0x00000000004301b7)
          CC=ALL PC=0x0 UMASK=0x1 E=0x1 EDGE=0 INT=0x0 INV=0x0 CMASK=0x0 AMT=0x0


# pcm-raw -e core/config=0x00000000004301b7,name=OCR.DEMAND_RFO.L3_MISS_LOCAL_DRAM.ANY_SNOOP
,,,SKT0CORE0,SKT0CORE1,SKT0CORE2,...
Date,Time,ms,OCR.DEMAND_RFO.L3_MISS_LOCAL_DRAM.ANY_SNOOP,OCR.DEMAND_RFO.L3_MISS_LOCAL_DRAM.ANY_SNOOP,OCR.DEMAND_RFO.L3_MISS_LOCAL_DRAM.ANY_SNOOP,...
2023-10-17,11:49:55.483,1001,0,0,0,... (all zero)

推测原因可能是PCM-raw不支持Offcore事件的收集,其当前支持的PMU包括:core、m3upi、upi(ll)/qpi(ll)、imc、m2m、pcu、cha/cbo、iio、ubox。

疑问:是否存在可行的方法来收集对应的计数器?

更新尝试3: 我尝试将内核升级到5.14版本,结果与尝试1一致。

内容的提问来源于stack exchange,提问作者Frontier_Setter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 11:08:38