0 Replies Latest reply on Sep 30, 2015 4:42 PM by iomartin

    Disable hardware prefetcher on 15h machine

    iomartin

      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