• Ravi Bangoria's avatar
    perf mem/c2c: Add load store event mappings for AMD · f7b58cbd
    Ravi Bangoria authored
    The 'perf mem' and 'perf c2c' tools are wrappers around 'perf record'
    with mem load/ store events. IBS tagged load/store sample provides most
    of the information needed for these tools. Wire in the "ibs_op//" event
    as mem-ldst event for AMD.
    
    There are some limitations though: Only load/store micro-ops provide
    mem/c2c information. Whereas, IBS does not have a way to choose a
    particular type of micro-op to tag. This results in many non-LS
    micro-ops being tagged which appear as N/A in the perf report. IBS,
    being an uncore pmu from kernel point of view[1], does not support per
    process monitoring. Thus, perf mem/c2c on AMD are currently supported in
    per-cpu mode only.
    
    Example:
    
      $ sudo perf mem record -- -c 10000
      ^C[ perf record: Woken up 227 times to write data ]
      [ perf record: Captured and wrote 58.760 MB perf.data (836978 samples) ]
    
      $ sudo perf mem report -F mem,sample,snoop
      Samples: 836K of event 'ibs_op//', Event count (approx.): 8418762
      Memory access                  Samples  Snoop
      N/A                             700620  N/A
      L1 hit                          126675  N/A
      L2 hit                             424  N/A
      L3 hit                             664  HitM
      L3 hit                              10  N/A
      Local RAM hit                        2  N/A
      Remote RAM (1 hop) hit            8558  N/A
      Remote Cache (1 hop) hit             3  N/A
      Remote Cache (1 hop) hit             2  HitM
      Remote Cache (2 hops) hit           10  HitM
      Remote Cache (2 hops) hit            6  N/A
      Uncached hit                         4  N/A
      $
    
    [1]: https://lore.kernel.org/lkml/20220829113347.295-1-ravi.bangoria@amd.comSigned-off-by: default avatarRavi Bangoria <ravi.bangoria@amd.com>
    Acked-by: default avatarJiri Olsa <jolsa@kernel.org>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Ali Saidi <alisaidi@amazon.com>
    Cc: Ananth Narayan <ananth.narayan@amd.com>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Dave Hansen <dave.hansen@linux.intel.com>
    Cc: H. Peter Anvin <hpa@zytor.com>
    Cc: Ian Rogers <irogers@google.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Joe Mario <jmario@redhat.com>
    Cc: Kan Liang <kan.liang@linux.intel.com>
    Cc: Kim Phillips <kim.phillips@amd.com>
    Cc: Leo Yan <leo.yan@linaro.org>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Sandipan Das <sandipan.das@amd.com>
    Cc: Santosh Shukla <santosh.shukla@amd.com>
    Cc: Stephane Eranian <eranian@google.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: x86@kernel.org
    Link: https://lore.kernel.org/r/20221006153946.7816-6-ravi.bangoria@amd.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    f7b58cbd
perf-mem.txt 2.29 KB