Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

perf_3.2-list(1) [debian man page]

PERF_3.2-LIST(1)						    perf Manual 						  PERF_3.2-LIST(1)

NAME
perf-list - List all symbolic event types SYNOPSIS
perf list [hw|sw|cache|tracepoint|event_glob] DESCRIPTION
This command displays the symbolic event types which can be selected in the various perf commands with the -e option. EVENT MODIFIERS
Events can optionally have a modifer by appending a colon and one or more modifiers. Modifiers allow the user to restrict when events are counted with u for user-space, k for kernel, h for hypervisor. The p modifier can be used for specifying how precise the instruction address should be. The p modifier is currently only implemented for Intel PEBS and can be specified multiple times: 0 - SAMPLE_IP can have arbitrary skid 1 - SAMPLE_IP must have constant skid 2 - SAMPLE_IP requested to have 0 skid 3 - SAMPLE_IP must have 0 skid The PEBS implementation now supports up to 2. RAW HARDWARE EVENT DESCRIPTOR
Even when an event is not available in a symbolic form within perf right now, it can be encoded in a per processor specific way. For instance For x86 CPUs NNN represents the raw register encoding with the layout of IA32_PERFEVTSELx MSRs (see [Intel(R) 64 and IA-32 Architectures Software Developer's Manual Volume 3B: System Programming Guide] Figure 30-1 Layout of IA32_PERFEVTSELx MSRs) or AMD's PerfEvtSeln (see [AMD64 Architecture Programmer's Manual Volume 2: System Programming], Page 344, Figure 13-7 Performance Event-Select Register (PerfEvtSeln)). Example: If the Intel docs for a QM720 Core i7 describe an event as: Event Umask Event Mask Num. Value Mnemonic Description Comment A8H 01H LSD.UOPS Counts the number of micro-ops Use cmask=1 and delivered by loop stream detector invert to count cycles raw encoding of 0x1A8 can be used: perf stat -e r1a8 -a sleep 1 perf record -e r1a8 ... You should refer to the processor specific documentation for getting these details. Some of them are referenced in the SEE ALSO section below. OPTIONS
Without options all known events will be listed. To limit the list use: 1. hw or hardware to list hardware events such as cache-misses, etc. 2. sw or software to list software events such as context switches, etc. 3. cache or hwcache to list hardware cache events such as L1-dcache-loads, etc. 4. tracepoint to list all tracepoint events, alternatively use subsys_glob:event_glob to filter by tracepoint subsystems such as sched, block, etc. 5. If none of the above is matched, it will apply the supplied glob to all events, printing the ones that match. One or more types can be used at the same time, listing the events for the types specified. SEE ALSO
perf_3.2-stat(1), perf_3.2-top(1), perf_3.2-record(1), Intel(R) 64 and IA-32 Architectures Software Developer's Manual Volume 3B: System Programming Guide[1], AMD64 Architecture Programmer's Manual Volume 2: System Programming[2] NOTES
1. Intel(R) 64 and IA-32 Architectures Software Developer's Manual Volume 3B: System Programming Guide http://www.intel.com/Assets/PDF/manual/253669.pdf 2. AMD64 Architecture Programmer's Manual Volume 2: System Programming http://support.amd.com/us/Processor_TechDocs/24593.pdf perf 06/24/2012 PERF_3.2-LIST(1)

Check Out this Related Man Page

PERF_3.2-RECORD(1)						    perf Manual 						PERF_3.2-RECORD(1)

NAME
perf-record - Run a command and record its profile into perf.data SYNOPSIS
perf record [-e <EVENT> | --event=EVENT] [-l] [-a] <command> perf record [-e <EVENT> | --event=EVENT] [-l] [-a] -- <command> [<options>] DESCRIPTION
This command runs a command and gathers a performance counter profile from it, into perf.data - without displaying anything. This file can then be inspected later on, using perf report. OPTIONS
<command>... Any command you can specify in a shell. -e, --event= Select the PMU event. Selection can be: o a symbolic event name (use perf list to list all events) o a raw PMU event (eventsel+umask) in the form of rNNN where NNN is a hexadecimal event descriptor. o a hardware breakpoint event in the form of mem:addr[:access] where addr is the address in memory you want to break in. Access is the memory access type (read, write, execute) it can be passed as follows: mem:addr[:[r][w][x]]. If you want to profile read-write accesses in 0x1000, just set mem:0x1000:rw. --filter=<filter> Event filter. -a, --all-cpus System-wide collection from all CPUs. -l Scale counter values. -p, --pid= Record events on existing process ID. -t, --tid= Record events on existing thread ID. -r, --realtime= Collect data with this RT SCHED_FIFO priority. -D, --no-delay Collect data without buffering. -A, --append Append to the output file to do incremental profiling. -f, --force Overwrite existing data file. (deprecated) -c, --count= Event period to sample. -o, --output= Output file name. -i, --no-inherit Child tasks do not inherit counters. -F, --freq= Profile at this frequency. -m, --mmap-pages= Number of mmap data pages. -g, --call-graph Do call-graph (stack chain/backtrace) recording. -q, --quiet Don't print any message, useful for scripting. -v, --verbose Be more verbose (show counter open errors, etc). -s, --stat Per thread counts. -d, --data Sample addresses. -T, --timestamp Sample timestamps. Use it with perf report -D to see the timestamps, for instance. -n, --no-samples Don't sample. -R, --raw-samples Collect raw sample records from all opened counters (default for tracepoint counters). -C, --cpu Collect samples 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. In per-thread mode with inheritance mode on (default), samples are captured only when the thread executes on the designated CPUs. Default is to monitor all CPUs. -N, --no-buildid-cache Do not update the builid cache. This saves some overhead in situations where the information in the perf.data file (which includes buildids) is sufficient. -G name,..., --cgroup name,... monitor only in the container (cgroup) called "name". This option is available only in per-cpu mode. The cgroup filesystem must be mounted. All threads belonging to container "name" are monitored when they run on the monitored CPUs. Multiple cgroups can be provided. Each cgroup is applied to the corresponding event, i.e., first cgroup to first event, second cgroup to second event and so on. It is possible to provide an empty cgroup (monitor all the time) using, e.g., -G foo,,bar. Cgroups must have corresponding events, i.e., they always refer to events defined earlier on the command line. SEE ALSO
perf_3.2-stat(1), perf_3.2-list(1) perf 06/24/2012 PERF_3.2-RECORD(1)
Man Page