4 Replies Latest reply on Sep 4, 2018 10:24 AM by abucodonosor

    issues with perf mem record

    yah

      hi,

       

      does anyone have any idea why 'perf mem record' is not working on a 24core, 2.3GHz AMD 7451 EPYC CPUs?  we getting the error 'failed: memory events not supported'. We are using Centos 7.4, kernel 3.10.0-693.el7.x86_64, with this version of perf: perf-3.10.0-693.21.1.el7.x86_64. We are trying to find the performance of the LLC , L2 caches and memory accesses.

       

      thanks,

       

      yah

        • Re: issues with perf mem record
          abucodonosor

          Hello,

           

          It seems like perf mem <...> will only work with Intel CPUs ( at least from what I've read in the kernel source code ).

           

          I don't know if fam17h supports that too and is just not implemented or it isn't suported at all and perf app should be fixed

          up a bit to not even try that on any AMD CPUs. Someone @AMD may know.

           

          BR

          • Re: issues with perf mem record
            jesse_amd

            Hi yah ,

             

            Are you able to update CentOS to version 7.5? RHEL version 7.5 improved EPYC support, in which case it may resolve the issue you are having. If after upgrading you are still having problems, please provide a list of supported memory events to help you debug it. 

              • Re: issues with perf mem record
                yah

                Thanks for the replies,

                 

                We are unable to update to centos 7.5. we are stuck on 7.4 for a while.

                 

                yah

                • Re: issues with perf mem record
                  abucodonosor

                  @jesse_amd

                   

                  I don't know what RH kernel looks like but on mainlain kernel , any , up2 current git there is no way

                  to run perf mem on AMD CPUs.

                   

                  perf mem need /sys/devices/cpu/events/mem-{loads,stores}
                  That code only exists for Intel so far.

                   

                  ...

                   

                  crazy@ant:~/Work/Linux/linux-git/linux$ grep -R  mem-loads arch/         

                  arch/x86/events/intel/core.c:EVENT_ATTR_STR(mem-loads,  mem_ld_nhm,     "event=0x0b,umask=0x10,ldlat=3");
                  arch/x86/events/intel/core.c:EVENT_ATTR_STR(mem-loads,  mem_ld_snb,     "event=0xcd,umask=0x1,ldlat=3");
                  arch/x86/events/intel/core.c:EVENT_ATTR_STR(mem-loads,  mem_ld_hsw,     "event=0xcd,umask=0x1,ldlat=3");

                   

                  ....

                   

                  BR