linux/tools/perf/Documentation
Ravi Bangoria f7b58cbdb3 perf mem/c2c: Add load store event mappings for AMD
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.com

Signed-off-by: Ravi Bangoria <ravi.bangoria@amd.com>
Acked-by: Jiri 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.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2022-10-06 16:30:06 -03:00
..
Build.txt
Makefile
android.txt
asciidoc.conf
asciidoctor-extensions.rb
build-docdep.perl
build-xed.txt
callchain-overhead-calculation.txt
cat-texi.perl
db-export.txt
examples.txt
guest-files.txt perf tools: Tidy guest option documentation 2022-08-11 18:50:17 -03:00
guestmount.txt perf tools: Tidy guest option documentation 2022-08-11 18:50:17 -03:00
intel-bts.txt
intel-hybrid.txt perf record: Fix manpage formatting of description of support to hybrid systems 2022-08-27 11:55:17 -03:00
intel-pt.txt
itrace.txt perf auxtrace: Add itrace option flag d+e to log on error 2022-10-04 08:55:21 -03:00
jit-interface.txt
jitdump-specification.txt
manpage-1.72.xsl
manpage-base.xsl
manpage-bold-literal.xsl
manpage-normal.xsl
manpage-suppress-sp.xsl
perf-annotate.txt
perf-archive.txt
perf-arm-coresight.txt perf test coresight: Add relevant documentation about ARM64 CoreSight testing 2022-10-06 14:50:55 -03:00
perf-arm-spe.txt
perf-bench.txt
perf-buildid-cache.txt
perf-buildid-list.txt perf buildid-list: Add a "-m" option to show kernel and modules build-ids 2022-07-18 16:35:34 -03:00
perf-c2c.txt perf mem/c2c: Add load store event mappings for AMD 2022-10-06 16:30:06 -03:00
perf-config.txt perf auxtrace: Add itrace option flag d+e to log on error 2022-10-04 08:55:21 -03:00
perf-daemon.txt
perf-data.txt
perf-diff.txt
perf-dlfilter.txt perf dlfilter: Add machine_pid and vcpu 2022-07-20 11:08:13 -03:00
perf-evlist.txt
perf-ftrace.txt
perf-help.txt
perf-inject.txt perf inject: Clarify build-id options a little bit 2022-10-04 08:55:22 -03:00
perf-intel-pt.txt perf intel-pt: Support itrace option flag d+e to log on error 2022-10-04 08:55:21 -03:00
perf-iostat.txt
perf-kallsyms.txt
perf-kmem.txt
perf-kvm.txt perf tools: Tidy guest option documentation 2022-08-11 18:50:17 -03:00
perf-kwork.txt perf kwork: Implement BPF trace 2022-07-26 16:31:54 -03:00
perf-list.txt
perf-lock.txt perf lock: Add -q/--quiet option to suppress header and debug messages 2022-10-04 08:55:23 -03:00
perf-mem.txt perf mem/c2c: Add load store event mappings for AMD 2022-10-06 16:30:06 -03:00
perf-probe.txt
perf-record.txt perf mem/c2c: Set PERF_SAMPLE_WEIGHT for LOAD_STORE events 2022-10-06 16:29:32 -03:00
perf-report.txt perf tools: Add 'addr' sort key 2022-10-04 08:55:22 -03:00
perf-sched.txt
perf-script-perl.txt
perf-script-python.txt
perf-script.txt perf tools: Tidy guest option documentation 2022-08-11 18:50:17 -03:00
perf-stat.txt perf stat: Add JSON output option 2022-08-10 10:43:29 -03:00
perf-test.txt
perf-timechart.txt
perf-top.txt perf docs: Correct typo of event_sources 2022-06-03 21:14:51 +02:00
perf-trace.txt
perf-version.txt
perf.data-directory-format.txt
perf.data-file-format.txt perf header: Record non-CPU PMU capabilities 2022-06-24 13:18:55 -03:00
perf.txt
perfconfig.example
security.txt
tips.txt
topdown.txt