| perf-mem(1) |
| =========== |
| |
| NAME |
| ---- |
| perf-mem - Profile memory accesses |
| |
| SYNOPSIS |
| -------- |
| [verse] |
| 'perf mem' [<options>] (record [<command>] | report) |
| |
| DESCRIPTION |
| ----------- |
| "perf mem record" runs a command and gathers memory operation data |
| from it, into perf.data. Perf record options are accepted and are passed through. |
| |
| "perf mem report" displays the result. It invokes perf report with the |
| right set of options to display a memory access profile. By default, loads |
| and stores are sampled. Use the -t option to limit to loads or stores. |
| |
| Note that on Intel systems the memory latency reported is the use-latency, |
| not the pure load (or store latency). Use latency includes any pipeline |
| queuing delays in addition to the memory subsystem latency. |
| |
| On Arm64 this uses SPE to sample load and store operations, therefore hardware |
| and kernel support is required. See linkperf:perf-arm-spe[1] for a setup guide. |
| Due to the statistical nature of SPE sampling, not every memory operation will |
| be sampled. |
| |
| OPTIONS |
| ------- |
| <command>...:: |
| Any command you can specify in a shell. |
| |
| -i:: |
| --input=<file>:: |
| Input file name. |
| |
| -f:: |
| --force:: |
| Don't do ownership validation |
| |
| -t:: |
| --type=<type>:: |
| Select the memory operation type: load or store (default: load,store) |
| |
| -D:: |
| --dump-raw-samples:: |
| Dump the raw decoded samples on the screen in a format that is easy to parse with |
| one sample per line. |
| |
| -x:: |
| --field-separator=<separator>:: |
| Specify the field separator used when dump raw samples (-D option). By default, |
| The separator is the space character. |
| |
| -C:: |
| --cpu=<cpu>:: |
| Monitor only on the list of CPUs provided. Multiple CPUs can be provided as a |
| comma-separated list with no space: 0,1. Ranges of CPUs are specified with -: 0-2. Default |
| is to monitor all CPUS. |
| -U:: |
| --hide-unresolved:: |
| Only display entries resolved to a symbol. |
| |
| -p:: |
| --phys-data:: |
| Record/Report sample physical addresses |
| |
| --data-page-size:: |
| Record/Report sample data address page size |
| |
| RECORD OPTIONS |
| -------------- |
| -e:: |
| --event <event>:: |
| Event selector. Use 'perf mem record -e list' to list available events. |
| |
| -K:: |
| --all-kernel:: |
| Configure all used events to run in kernel space. |
| |
| -U:: |
| --all-user:: |
| Configure all used events to run in user space. |
| |
| -v:: |
| --verbose:: |
| Be more verbose (show counter open errors, etc) |
| |
| --ldlat <n>:: |
| Specify desired latency for loads event. Supported on Intel and Arm64 |
| processors only. Ignored on other archs. |
| |
| In addition, for report all perf report options are valid, and for record |
| all perf record options. |
| |
| SEE ALSO |
| -------- |
| linkperf:perf-record[1], linkperf:perf-report[1], linkperf:perf-arm-spe[1] |