Hello,
I have a machine with four 6272 processors and I'm trying to disable the hardware prefetcher. From the BKDG for Family 15h, models 00h-0Fh (http://support.amd.com/TechDocs/42301_15h_Mod_00h-0Fh_BKDG.pdf), I saw that I should set bit 13 of MSR C001_1022 to 1.
First I check what the current value for that register is:
# rdmsr --all 0xc0011022
0
0
[...]
0
Since it's 0 for all cores, I can use value 0x2000.
# wrmsr --all 0xc0011022 0x2000
# rdmsr --all 0xc0011022
0x2000
0x2000
[...]
0x2000
So I thought I'd disabled it. However, I couldn't see any difference in some memory-intensive applications, so I decided to check if there was any performance event that would tell me how many prefetches were done. From the BKDG, I got PMCx067 Data Prefetcher. With the aid of libpfm4's check_event utility program, I got perf raw event 0x530267.
Then
$ perf stat -e r530267 /bin/ls > /dev/null
Performance counter stats for '/bin/ls':
28,457 r530267
I expected zero events. I resetted the MSR to 0 and reran perf, getting about the same count.
I don't know what I'm doing wrong. I'd appreciate any help.
Thank you