从perf

时间:2017-07-04 10:28:11

标签: linux linux-kernel x86 perf

我现在正尝试使用perf来测量带有PEBS的L3_Miss(LLC Miss)。

这是命令:perf record -d -e cpu/event=0xd1,umask=0x20/ppu -c 1 test,当完成时,我使用perf script -F ip,sym,addr检查结果。

根据SDM from intel,Vol。 3B表18-55。 PEBS记录包含一个名为Data Linear Address的字段,代表商店的加载地址或目的地,是我需要的。

我的问题是,我在perf-script中指定的字段 addr 与PEBS记录中的数据线性地址相同? 如果没有,如何检索此字段? (和CPU寄存器R8~R15等其他相关字段)

PS。我正在使用i7-6700 CPU(Skylake Microarchitecture)

谢谢,任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:3)

是的,你是对的。事实上, perf脚本中的addr字段可以为您提供PEBS记录中的数据线性地址。正确指定时,此数据线性地址与加载源或商店的目标相关联。您在命令perf record -d中使用的开关 -d 有助于记录在内存中访问或写入的数据的线性地址。

此记录数据线性地址的机制已从处理器微体系结构名称 Haswell 替换精确存储事件开始。它也继续进行 Skylake

如果您想在代码中看到这一点here you go