blob: 79483f40e991eaa80ffd7889f628d5e4d8ea3ce0 [file] [log] [blame]
Thomas Gleixner386b05e2009-06-06 14:56:33 +02001perf-list(1)
Ingo Molnar6e6b7542008-04-15 22:39:31 +02002============
Thomas Gleixner386b05e2009-06-06 14:56:33 +02003
4NAME
5----
6perf-list - List all symbolic event types
7
8SYNOPSIS
9--------
10[verse]
Andi Kleendc098b32013-04-20 11:02:29 -070011'perf list' [hw|sw|cache|tracepoint|pmu|event_glob]
Thomas Gleixner386b05e2009-06-06 14:56:33 +020012
13DESCRIPTION
14-----------
15This command displays the symbolic event types which can be selected in the
16various perf commands with the -e option.
17
Robert Richter75bc5ca2012-08-07 19:43:15 +020018[[EVENT_MODIFIERS]]
Sonny Raoffec5162010-10-14 20:51:00 -050019EVENT MODIFIERS
20---------------
21
Masanari Iida96355f22014-09-10 00:18:50 +090022Events can optionally have a modifier by appending a colon and one or
Robert Richter2055fda2012-08-07 19:43:16 +020023more modifiers. Modifiers allow the user to restrict the events to be
24counted. The following modifiers exist:
25
26 u - user-space counting
27 k - kernel counting
28 h - hypervisor counting
Jiri Olsaa1e12da2015-04-07 23:25:14 +020029 I - non idle counting
Robert Richter2055fda2012-08-07 19:43:16 +020030 G - guest counting (in KVM guests)
31 H - host counting (not in KVM guests)
32 p - precise level
Jiri Olsa7f94af72015-10-05 20:06:05 +020033 P - use maximum detected precise level
Jiri Olsa3c176312012-10-10 17:39:03 +020034 S - read sample value (PERF_SAMPLE_READ)
Michael Ellermane9a7c412013-08-06 23:28:05 +100035 D - pin the event to the PMU
Sonny Raoffec5162010-10-14 20:51:00 -050036
37The 'p' modifier can be used for specifying how precise the instruction
Robert Richter2055fda2012-08-07 19:43:16 +020038address should be. The 'p' modifier can be specified multiple times:
Sonny Raoffec5162010-10-14 20:51:00 -050039
Robert Richter2055fda2012-08-07 19:43:16 +020040 0 - SAMPLE_IP can have arbitrary skid
41 1 - SAMPLE_IP must have constant skid
42 2 - SAMPLE_IP requested to have 0 skid
43 3 - SAMPLE_IP must have 0 skid
44
45For Intel systems precise event sampling is implemented with PEBS
46which supports up to precise-level 2.
47
48On AMD systems it is implemented using IBS (up to precise-level 2).
49The precise modifier works with event types 0x76 (cpu-cycles, CPU
50clocks not halted) and 0xC1 (micro-ops retired). Both events map to
51IBS execution sampling (IBS op) with the IBS Op Counter Control bit
52(IbsOpCntCtl) set respectively (see AMD64 Architecture Programmer’s
53Manual Volume 2: System Programming, 13.3 Instruction-Based
54Sampling). Examples to use IBS:
55
56 perf record -a -e cpu-cycles:p ... # use ibs op counting cycles
57 perf record -a -e r076:p ... # same as -e cpu-cycles:p
58 perf record -a -e r0C1:p ... # use ibs op counting micro-ops
Sonny Raoffec5162010-10-14 20:51:00 -050059
Arnaldo Carvalho de Melo9e32a3c2010-05-05 11:20:05 -030060RAW HARDWARE EVENT DESCRIPTOR
61-----------------------------
62Even when an event is not available in a symbolic form within perf right now,
Arnaldo Carvalho de Melo1cf4a062010-05-07 14:07:05 -030063it can be encoded in a per processor specific way.
64
65For instance For x86 CPUs NNN represents the raw register encoding with the
66layout of IA32_PERFEVTSELx MSRs (see [Intel® 64 and IA-32 Architectures Software Developer's Manual Volume 3B: System Programming Guide] Figure 30-1 Layout
67of IA32_PERFEVTSELx MSRs) or AMD's PerfEvtSeln (see [AMD64 Architecture Programmer’s Manual Volume 2: System Programming], Page 344,
68Figure 13-7 Performance Event-Select Register (PerfEvtSeln)).
69
Robert Richter75bc5ca2012-08-07 19:43:15 +020070Note: Only the following bit fields can be set in x86 counter
71registers: event, umask, edge, inv, cmask. Esp. guest/host only and
72OS/user mode flags must be setup using <<EVENT_MODIFIERS, EVENT
73MODIFIERS>>.
74
Arnaldo Carvalho de Melo1cf4a062010-05-07 14:07:05 -030075Example:
76
77If the Intel docs for a QM720 Core i7 describe an event as:
Arnaldo Carvalho de Melo9e32a3c2010-05-05 11:20:05 -030078
79 Event Umask Event Mask
80 Num. Value Mnemonic Description Comment
81
82 A8H 01H LSD.UOPS Counts the number of micro-ops Use cmask=1 and
83 delivered by loop stream detector invert to count
84 cycles
85
86raw encoding of 0x1A8 can be used:
87
88 perf stat -e r1a8 -a sleep 1
89 perf record -e r1a8 ...
90
Arnaldo Carvalho de Melo1cf4a062010-05-07 14:07:05 -030091You should refer to the processor specific documentation for getting these
92details. Some of them are referenced in the SEE ALSO section below.
93
Cody P Schaferf9ab9c12015-01-07 17:13:53 -080094PARAMETERIZED EVENTS
95--------------------
96
97Some pmu events listed by 'perf-list' will be displayed with '?' in them. For
98example:
99
100 hv_gpci/dtbp_ptitc,phys_processor_idx=?/
101
102This means that when provided as an event, a value for '?' must
103also be supplied. For example:
104
105 perf stat -C 0 -e 'hv_gpci/dtbp_ptitc,phys_processor_idx=0x2/' ...
106
Thomas Gleixner386b05e2009-06-06 14:56:33 +0200107OPTIONS
108-------
Arnaldo Carvalho de Melo668b8782011-02-17 15:38:58 -0200109
110Without options all known events will be listed.
111
112To limit the list use:
113
114. 'hw' or 'hardware' to list hardware events such as cache-misses, etc.
115
116. 'sw' or 'software' to list software events such as context switches, etc.
117
118. 'cache' or 'hwcache' to list hardware cache events such as L1-dcache-loads, etc.
119
120. 'tracepoint' to list all tracepoint events, alternatively use
121 'subsys_glob:event_glob' to filter by tracepoint subsystems such as sched,
122 block, etc.
123
Andi Kleendc098b32013-04-20 11:02:29 -0700124. 'pmu' to print the kernel supplied PMU events.
125
Arnaldo Carvalho de Melo668b8782011-02-17 15:38:58 -0200126. If none of the above is matched, it will apply the supplied glob to all
127 events, printing the ones that match.
128
Arnaldo Carvalho de Melodbc67402015-10-01 12:12:22 -0300129. As a last resort, it will do a substring search in all event names.
130
Arnaldo Carvalho de Melo668b8782011-02-17 15:38:58 -0200131One or more types can be used at the same time, listing the events for the
132types specified.
Thomas Gleixner386b05e2009-06-06 14:56:33 +0200133
Yunlong Song5ef803e2015-02-27 18:21:28 +0800134Support raw format:
135
136. '--raw-dump', shows the raw-dump of all the events.
137. '--raw-dump [hw|sw|cache|tracepoint|pmu|event_glob]', shows the raw-dump of
138 a certain kind of events.
139
Thomas Gleixner386b05e2009-06-06 14:56:33 +0200140SEE ALSO
141--------
142linkperf:perf-stat[1], linkperf:perf-top[1],
Arnaldo Carvalho de Melo1cf4a062010-05-07 14:07:05 -0300143linkperf:perf-record[1],
144http://www.intel.com/Assets/PDF/manual/253669.pdf[Intel® 64 and IA-32 Architectures Software Developer's Manual Volume 3B: System Programming Guide],
Robert Richter2055fda2012-08-07 19:43:16 +0200145http://support.amd.com/us/Processor_TechDocs/24593_APM_v2.pdf[AMD64 Architecture Programmer’s Manual Volume 2: System Programming]