]>
Commit | Line | Data |
---|---|---|
386b05e3 | 1 | perf-list(1) |
6e6b754f | 2 | ============ |
386b05e3 TG |
3 | |
4 | NAME | |
5 | ---- | |
6 | perf-list - List all symbolic event types | |
7 | ||
8 | SYNOPSIS | |
9 | -------- | |
10 | [verse] | |
dc098b35 | 11 | 'perf list' [hw|sw|cache|tracepoint|pmu|event_glob] |
386b05e3 TG |
12 | |
13 | DESCRIPTION | |
14 | ----------- | |
15 | This command displays the symbolic event types which can be selected in the | |
16 | various perf commands with the -e option. | |
17 | ||
75bc5ca8 | 18 | [[EVENT_MODIFIERS]] |
ffec5169 SR |
19 | EVENT MODIFIERS |
20 | --------------- | |
21 | ||
96355f2c | 22 | Events can optionally have a modifier by appending a colon and one or |
2055fdaf RR |
23 | more modifiers. Modifiers allow the user to restrict the events to be |
24 | counted. The following modifiers exist: | |
25 | ||
26 | u - user-space counting | |
27 | k - kernel counting | |
28 | h - hypervisor counting | |
a1e12da4 | 29 | I - non idle counting |
2055fdaf RR |
30 | G - guest counting (in KVM guests) |
31 | H - host counting (not in KVM guests) | |
32 | p - precise level | |
3c176311 | 33 | S - read sample value (PERF_SAMPLE_READ) |
e9a7c414 | 34 | D - pin the event to the PMU |
ffec5169 SR |
35 | |
36 | The 'p' modifier can be used for specifying how precise the instruction | |
2055fdaf RR |
37 | address should be. The 'p' modifier can be specified multiple times: |
38 | ||
39 | 0 - SAMPLE_IP can have arbitrary skid | |
40 | 1 - SAMPLE_IP must have constant skid | |
41 | 2 - SAMPLE_IP requested to have 0 skid | |
42 | 3 - SAMPLE_IP must have 0 skid | |
43 | ||
44 | For Intel systems precise event sampling is implemented with PEBS | |
45 | which supports up to precise-level 2. | |
46 | ||
47 | On AMD systems it is implemented using IBS (up to precise-level 2). | |
48 | The precise modifier works with event types 0x76 (cpu-cycles, CPU | |
49 | clocks not halted) and 0xC1 (micro-ops retired). Both events map to | |
50 | IBS execution sampling (IBS op) with the IBS Op Counter Control bit | |
51 | (IbsOpCntCtl) set respectively (see AMD64 Architecture Programmer’s | |
52 | Manual Volume 2: System Programming, 13.3 Instruction-Based | |
53 | Sampling). Examples to use IBS: | |
ffec5169 | 54 | |
2055fdaf RR |
55 | perf record -a -e cpu-cycles:p ... # use ibs op counting cycles |
56 | perf record -a -e r076:p ... # same as -e cpu-cycles:p | |
57 | perf record -a -e r0C1:p ... # use ibs op counting micro-ops | |
ffec5169 | 58 | |
9e32a3cb ACM |
59 | RAW HARDWARE EVENT DESCRIPTOR |
60 | ----------------------------- | |
61 | Even when an event is not available in a symbolic form within perf right now, | |
1cf4a063 ACM |
62 | it can be encoded in a per processor specific way. |
63 | ||
64 | For instance For x86 CPUs NNN represents the raw register encoding with the | |
65 | layout of IA32_PERFEVTSELx MSRs (see [Intel® 64 and IA-32 Architectures Software Developer's Manual Volume 3B: System Programming Guide] Figure 30-1 Layout | |
66 | of IA32_PERFEVTSELx MSRs) or AMD's PerfEvtSeln (see [AMD64 Architecture Programmer’s Manual Volume 2: System Programming], Page 344, | |
67 | Figure 13-7 Performance Event-Select Register (PerfEvtSeln)). | |
68 | ||
75bc5ca8 RR |
69 | Note: Only the following bit fields can be set in x86 counter |
70 | registers: event, umask, edge, inv, cmask. Esp. guest/host only and | |
71 | OS/user mode flags must be setup using <<EVENT_MODIFIERS, EVENT | |
72 | MODIFIERS>>. | |
73 | ||
1cf4a063 ACM |
74 | Example: |
75 | ||
76 | If the Intel docs for a QM720 Core i7 describe an event as: | |
9e32a3cb ACM |
77 | |
78 | Event Umask Event Mask | |
79 | Num. Value Mnemonic Description Comment | |
80 | ||
81 | A8H 01H LSD.UOPS Counts the number of micro-ops Use cmask=1 and | |
82 | delivered by loop stream detector invert to count | |
83 | cycles | |
84 | ||
85 | raw encoding of 0x1A8 can be used: | |
86 | ||
87 | perf stat -e r1a8 -a sleep 1 | |
88 | perf record -e r1a8 ... | |
89 | ||
1cf4a063 ACM |
90 | You should refer to the processor specific documentation for getting these |
91 | details. Some of them are referenced in the SEE ALSO section below. | |
92 | ||
f9ab9c19 CS |
93 | PARAMETERIZED EVENTS |
94 | -------------------- | |
95 | ||
96 | Some pmu events listed by 'perf-list' will be displayed with '?' in them. For | |
97 | example: | |
98 | ||
99 | hv_gpci/dtbp_ptitc,phys_processor_idx=?/ | |
100 | ||
101 | This means that when provided as an event, a value for '?' must | |
102 | also be supplied. For example: | |
103 | ||
104 | perf stat -C 0 -e 'hv_gpci/dtbp_ptitc,phys_processor_idx=0x2/' ... | |
105 | ||
386b05e3 TG |
106 | OPTIONS |
107 | ------- | |
668b8788 ACM |
108 | |
109 | Without options all known events will be listed. | |
110 | ||
111 | To limit the list use: | |
112 | ||
113 | . 'hw' or 'hardware' to list hardware events such as cache-misses, etc. | |
114 | ||
115 | . 'sw' or 'software' to list software events such as context switches, etc. | |
116 | ||
117 | . 'cache' or 'hwcache' to list hardware cache events such as L1-dcache-loads, etc. | |
118 | ||
119 | . 'tracepoint' to list all tracepoint events, alternatively use | |
120 | 'subsys_glob:event_glob' to filter by tracepoint subsystems such as sched, | |
121 | block, etc. | |
122 | ||
dc098b35 AK |
123 | . 'pmu' to print the kernel supplied PMU events. |
124 | ||
668b8788 ACM |
125 | . If none of the above is matched, it will apply the supplied glob to all |
126 | events, printing the ones that match. | |
127 | ||
128 | One or more types can be used at the same time, listing the events for the | |
129 | types specified. | |
386b05e3 | 130 | |
5ef803ee YS |
131 | Support raw format: |
132 | ||
133 | . '--raw-dump', shows the raw-dump of all the events. | |
134 | . '--raw-dump [hw|sw|cache|tracepoint|pmu|event_glob]', shows the raw-dump of | |
135 | a certain kind of events. | |
136 | ||
386b05e3 TG |
137 | SEE ALSO |
138 | -------- | |
139 | linkperf:perf-stat[1], linkperf:perf-top[1], | |
1cf4a063 ACM |
140 | linkperf:perf-record[1], |
141 | http://www.intel.com/Assets/PDF/manual/253669.pdf[Intel® 64 and IA-32 Architectures Software Developer's Manual Volume 3B: System Programming Guide], | |
2055fdaf | 142 | http://support.amd.com/us/Processor_TechDocs/24593_APM_v2.pdf[AMD64 Architecture Programmer’s Manual Volume 2: System Programming] |