I'm trying to understand the meaning of the LLC-prefetch-misses perf event for Sandy Bridge.
From linux kernel source I see the definition of the event:
[ C(OP_PREFETCH) ] = {
[ C(RESULT_ACCESS) ] = SNB_DMND_PREFETCH|SNB_L3_ACCESS,
[ C(RESULT_MISS) ] = SNB_DMND_PREFETCH|SNB_L3_MISS,
},
where:
SNB_DMND_PREFETCH = (SNB_PF_DATA_RD|SNB_PF_RFO) points to bits 4-5 of the event register, while
SNB_L3_MISS = (SNB_DRAM_ANY|SNB_NON_DRAM) points to bits 22-36 of the event register.
Reading Intel® 64 and IA-32 Architectures Software Developer’s Manual, volume 3, chapter 18.3.4.5, I find that:
SNB_DMND_PREFETCH stand for the "Request_Type" and SNB_L3_MISS stand for the "Response_Type" fields of the MSR_OFFCORE_RSP_x Event Registers
Request:
Response:
However, I'm not able to understand the meaning of the "Response" in the context of prefetching.
Moreover, I found this definition in some courses 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
Any suggestions regarding the meaning of LLC-prefetch and LLC-prefetch-misses events? Are the above definitions relevant?
Thank you.


