【发布时间】:2022-01-22 09:45:55
【问题描述】:
我正在尝试了解 Sandy Bridge 的 LLC-prefetch-misses perf 事件的含义。
从linux内核source我看到了事件的定义:
[ C(OP_PREFETCH) ] = {
[ C(RESULT_ACCESS) ] = SNB_DMND_PREFETCH|SNB_L3_ACCESS,
[ C(RESULT_MISS) ] = SNB_DMND_PREFETCH|SNB_L3_MISS,
},
在哪里:
SNB_DMND_PREFETCH = (SNB_PF_DATA_RD|SNB_PF_RFO) 指向事件寄存器的第 4-5 位,而
SNB_L3_MISS = (SNB_DRAM_ANY|SNB_NON_DRAM) 指向事件寄存器的第 22-36 位。
阅读Intel® 64 and IA-32 Architectures Software Developer’s Manual,第 3 卷,第 18.3.4.5 章,我发现:
SNB_DMND_PREFETCH 代表“Request_Type”,SNB_L3_MISS 代表MSR_OFFCORE_RSP_x 事件寄存器的“Response_Type”字段
请求:
回复:
但是,我无法理解预取上下文中“响应”的含义。
另外,我在一些课程中找到了这个定义slides:
Prefetch Hit: Prefetched line that was hit in the cache before being replaced (miss avoided)
Prefetch Miss: Prefetched line that was replaced before being accessed
关于LLC-prefetch 和LLC-prefetch-misses 事件的含义有什么建议吗?上述定义是否相关?
谢谢。
【问题讨论】:
标签: linux caching perf prefetch