我现在正尝试使用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)
谢谢,任何建议都将不胜感激。
答案 0 :(得分:3)
是的,你是对的。事实上, perf脚本中的addr字段可以为您提供PEBS记录中的数据线性地址。正确指定时,此数据线性地址与加载源或商店的目标相关联。您在命令perf record -d
中使用的开关 -d 有助于记录在内存中访问或写入的数据的线性地址。
此记录数据线性地址的机制已从处理器微体系结构名称 Haswell 替换精确存储事件开始。它也继续进行 Skylake 。
如果您想在代码中看到这一点here you go。