1630171d4SAndi Kleen[
2630171d4SAndi Kleen    {
3b5ff7f27SJin Yao        "BriefDescription": "Number of instructions retired. General Counter - architectural event",
4630171d4SAndi Kleen        "Counter": "0,1,2,3",
5b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
6b5ff7f27SJin Yao        "Errata": "SKL091, SKL044",
7b5ff7f27SJin Yao        "EventCode": "0xC0",
8b5ff7f27SJin Yao        "EventName": "INST_RETIRED.ANY_P",
9b5ff7f27SJin Yao        "PublicDescription": "Counts the number of instructions (EOMs) retired. Counting covers macro-fused instructions individually (that is, increments by two).",
10b5ff7f27SJin Yao        "SampleAfterValue": "2000003"
11630171d4SAndi Kleen    },
12630171d4SAndi Kleen    {
13b5ff7f27SJin Yao        "BriefDescription": "Counts number of cycles no uops were dispatched to be executed on this thread.",
14630171d4SAndi Kleen        "Counter": "0,1,2,3",
15b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
16b5ff7f27SJin Yao        "CounterMask": "1",
17b5ff7f27SJin Yao        "EventCode": "0xB1",
18b5ff7f27SJin Yao        "EventName": "UOPS_EXECUTED.STALL_CYCLES",
19630171d4SAndi Kleen        "Invert": "1",
20b5ff7f27SJin Yao        "PublicDescription": "Counts cycles during which no uops were dispatched from the Reservation Station (RS) per thread.",
21630171d4SAndi Kleen        "SampleAfterValue": "2000003",
22b5ff7f27SJin Yao        "UMask": "0x1"
23630171d4SAndi Kleen    },
24630171d4SAndi Kleen    {
25630171d4SAndi Kleen        "BriefDescription": "Cycles total of 4 uops are executed on all ports and Reservation Station was not empty.",
26630171d4SAndi Kleen        "Counter": "0,1,2,3",
27b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
28b5ff7f27SJin Yao        "EventCode": "0xA6",
29630171d4SAndi Kleen        "EventName": "EXE_ACTIVITY.4_PORTS_UTIL",
30630171d4SAndi Kleen        "PublicDescription": "Cycles total of 4 uops are executed on all ports and Reservation Station (RS) was not empty.",
31630171d4SAndi Kleen        "SampleAfterValue": "2000003",
32b5ff7f27SJin Yao        "UMask": "0x10"
33630171d4SAndi Kleen    },
34630171d4SAndi Kleen    {
35b5ff7f27SJin Yao        "BriefDescription": "Cycles when divide unit is busy executing divide or square root operations. Accounts for integer and floating-point operations.",
36630171d4SAndi Kleen        "Counter": "0,1,2,3",
37b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
3819f2d40cSAndi Kleen        "CounterMask": "1",
39b5ff7f27SJin Yao        "EventCode": "0x14",
40b5ff7f27SJin Yao        "EventName": "ARITH.DIVIDER_ACTIVE",
4119f2d40cSAndi Kleen        "SampleAfterValue": "2000003",
42b5ff7f27SJin Yao        "UMask": "0x1"
4319f2d40cSAndi Kleen    },
4419f2d40cSAndi Kleen    {
45b5ff7f27SJin Yao        "BriefDescription": "False dependencies in MOB due to partial compare on address.",
46630171d4SAndi Kleen        "Counter": "0,1,2,3",
47b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
48b5ff7f27SJin Yao        "EventCode": "0x07",
49b5ff7f27SJin Yao        "EventName": "LD_BLOCKS_PARTIAL.ADDRESS_ALIAS",
50b5ff7f27SJin Yao        "PublicDescription": "Counts false dependencies in MOB when the partial comparison upon loose net check and dependency was resolved by the Enhanced Loose net mechanism. This may not result in high performance penalties. Loose net checks can fail when loads and stores are 4k aliased.",
51b5ff7f27SJin Yao        "SampleAfterValue": "100003",
52b5ff7f27SJin Yao        "UMask": "0x1"
5319f2d40cSAndi Kleen    },
5419f2d40cSAndi Kleen    {
55b5ff7f27SJin Yao        "BriefDescription": "Far branch instructions retired.",
5619f2d40cSAndi Kleen        "Counter": "0,1,2,3",
57b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
58b5ff7f27SJin Yao        "Errata": "SKL091",
59b5ff7f27SJin Yao        "EventCode": "0xC4",
60b5ff7f27SJin Yao        "EventName": "BR_INST_RETIRED.FAR_BRANCH",
61b5ff7f27SJin Yao        "PEBS": "1",
62b5ff7f27SJin Yao        "PublicDescription": "This event counts far branch instructions retired.",
63b5ff7f27SJin Yao        "SampleAfterValue": "100007",
64b5ff7f27SJin Yao        "UMask": "0x40"
6519f2d40cSAndi Kleen    },
6619f2d40cSAndi Kleen    {
67630171d4SAndi Kleen        "BriefDescription": "Counts the number of x87 uops dispatched.",
68630171d4SAndi Kleen        "Counter": "0,1,2,3",
69b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
70b5ff7f27SJin Yao        "EventCode": "0xB1",
71630171d4SAndi Kleen        "EventName": "UOPS_EXECUTED.X87",
72630171d4SAndi Kleen        "PublicDescription": "Counts the number of x87 uops executed.",
73630171d4SAndi Kleen        "SampleAfterValue": "2000003",
74b5ff7f27SJin Yao        "UMask": "0x10"
75630171d4SAndi Kleen    },
76630171d4SAndi Kleen    {
77b5ff7f27SJin Yao        "BriefDescription": "Demand load dispatches that hit L1D fill buffer (FB) allocated for software prefetch.",
78630171d4SAndi Kleen        "Counter": "0,1,2,3",
79b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
80b5ff7f27SJin Yao        "EventCode": "0x4C",
81b5ff7f27SJin Yao        "EventName": "LOAD_HIT_PRE.SW_PF",
82b5ff7f27SJin Yao        "PublicDescription": "Counts all not software-prefetch load dispatches that hit the fill buffer (FB) allocated for the software prefetch. It can also be incremented by some lock instructions. So it should only be used with profiling so that the locks can be excluded by ASM (Assembly File) inspection of the nearby instructions.",
83630171d4SAndi Kleen        "SampleAfterValue": "100003",
84b5ff7f27SJin Yao        "UMask": "0x1"
85630171d4SAndi Kleen    },
86630171d4SAndi Kleen    {
87b5ff7f27SJin Yao        "BriefDescription": "Mispredicted direct and indirect near call instructions retired.",
88b5ff7f27SJin Yao        "Counter": "0,1,2,3",
89b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
90b5ff7f27SJin Yao        "EventCode": "0xC5",
91b5ff7f27SJin Yao        "EventName": "BR_MISP_RETIRED.NEAR_CALL",
92b5ff7f27SJin Yao        "PEBS": "1",
93b5ff7f27SJin Yao        "PublicDescription": "Counts both taken and not taken retired mispredicted direct and indirect near calls, including both register and memory indirect.",
94b5ff7f27SJin Yao        "SampleAfterValue": "400009",
95b5ff7f27SJin Yao        "UMask": "0x2"
96b5ff7f27SJin Yao    },
97b5ff7f27SJin Yao    {
98b5ff7f27SJin Yao        "BriefDescription": "Total execution stalls.",
99b5ff7f27SJin Yao        "Counter": "0,1,2,3",
100b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
101b5ff7f27SJin Yao        "CounterMask": "4",
102b5ff7f27SJin Yao        "EventCode": "0xA3",
103b5ff7f27SJin Yao        "EventName": "CYCLE_ACTIVITY.STALLS_TOTAL",
104b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
105b5ff7f27SJin Yao        "UMask": "0x4"
106b5ff7f27SJin Yao    },
107b5ff7f27SJin Yao    {
108b5ff7f27SJin Yao        "BriefDescription": "Execution stalls while L2 cache miss demand load is outstanding.",
109b5ff7f27SJin Yao        "Counter": "0,1,2,3",
110b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
111b5ff7f27SJin Yao        "CounterMask": "5",
112b5ff7f27SJin Yao        "EventCode": "0xA3",
113b5ff7f27SJin Yao        "EventName": "CYCLE_ACTIVITY.STALLS_L2_MISS",
114b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
115b5ff7f27SJin Yao        "UMask": "0x5"
116b5ff7f27SJin Yao    },
117b5ff7f27SJin Yao    {
118b5ff7f27SJin Yao        "BriefDescription": "Number of slow LEA uops being allocated. A uop is generally considered SlowLea if it has 3 sources (e.g. 2 sources + immediate) regardless if as a result of LEA instruction or not.",
119b5ff7f27SJin Yao        "Counter": "0,1,2,3",
120b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
121b5ff7f27SJin Yao        "EventCode": "0x0E",
122b5ff7f27SJin Yao        "EventName": "UOPS_ISSUED.SLOW_LEA",
123b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
124b5ff7f27SJin Yao        "UMask": "0x20"
125b5ff7f27SJin Yao    },
126b5ff7f27SJin Yao    {
127630171d4SAndi Kleen        "BriefDescription": "Cycles with less than 10 actually retired uops.",
128630171d4SAndi Kleen        "Counter": "0,1,2,3",
129b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
130630171d4SAndi Kleen        "CounterMask": "10",
131b5ff7f27SJin Yao        "EventCode": "0xC2",
132b5ff7f27SJin Yao        "EventName": "UOPS_RETIRED.TOTAL_CYCLES",
133b5ff7f27SJin Yao        "Invert": "1",
134630171d4SAndi Kleen        "PublicDescription": "Number of cycles using always true condition (uops_ret < 16) applied to non PEBS uops retired event.",
135630171d4SAndi Kleen        "SampleAfterValue": "2000003",
136b5ff7f27SJin Yao        "UMask": "0x2"
137630171d4SAndi Kleen    },
138630171d4SAndi Kleen    {
139b5ff7f27SJin Yao        "BriefDescription": "Thread cycles when thread is not in halt state",
14019f2d40cSAndi Kleen        "Counter": "0,1,2,3",
141b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
142b5ff7f27SJin Yao        "EventCode": "0x3C",
143b5ff7f27SJin Yao        "EventName": "CPU_CLK_UNHALTED.THREAD_P",
144b5ff7f27SJin Yao        "PublicDescription": "This is an architectural event that counts the number of thread cycles while the thread is not in a halt state. The thread enters the halt state when it is running the HLT instruction. The core frequency may change from time to time due to power or thermal throttling. For this reason, this event may have a changing ratio with regards to wall clock time.",
145b5ff7f27SJin Yao        "SampleAfterValue": "2000003"
14619f2d40cSAndi Kleen    },
14719f2d40cSAndi Kleen    {
148b5ff7f27SJin Yao        "BriefDescription": "Cycles where at least 2 uops were executed per-thread",
14919f2d40cSAndi Kleen        "Counter": "0,1,2,3",
150b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
151b5ff7f27SJin Yao        "CounterMask": "2",
152b5ff7f27SJin Yao        "EventCode": "0xB1",
153b5ff7f27SJin Yao        "EventName": "UOPS_EXECUTED.CYCLES_GE_2_UOPS_EXEC",
154b5ff7f27SJin Yao        "PublicDescription": "Cycles where at least 2 uops were executed per-thread.",
15519f2d40cSAndi Kleen        "SampleAfterValue": "2000003",
156b5ff7f27SJin Yao        "UMask": "0x1"
15719f2d40cSAndi Kleen    },
15819f2d40cSAndi Kleen    {
159b5ff7f27SJin Yao        "BriefDescription": "Core crystal clock cycles when the thread is unhalted.",
160b5ff7f27SJin Yao        "Counter": "0,1,2,3",
161b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
162b5ff7f27SJin Yao        "EventCode": "0x3C",
163b5ff7f27SJin Yao        "EventName": "CPU_CLK_THREAD_UNHALTED.REF_XCLK",
164b5ff7f27SJin Yao        "SampleAfterValue": "25003",
165b5ff7f27SJin Yao        "UMask": "0x1"
166b5ff7f27SJin Yao    },
167b5ff7f27SJin Yao    {
168630171d4SAndi Kleen        "BriefDescription": "Number of machine clears (nukes) of any type.",
169630171d4SAndi Kleen        "Counter": "0,1,2,3",
170b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
171630171d4SAndi Kleen        "CounterMask": "1",
172b5ff7f27SJin Yao        "EdgeDetect": "1",
173b5ff7f27SJin Yao        "EventCode": "0xC3",
174b5ff7f27SJin Yao        "EventName": "MACHINE_CLEARS.COUNT",
175630171d4SAndi Kleen        "SampleAfterValue": "100003",
176b5ff7f27SJin Yao        "UMask": "0x1"
177630171d4SAndi Kleen    },
178630171d4SAndi Kleen    {
179b5ff7f27SJin Yao        "AnyThread": "1",
180b5ff7f27SJin Yao        "BriefDescription": "Core cycles when at least one thread on the physical core is not in halt state.",
181b5ff7f27SJin Yao        "Counter": "Fixed counter 1",
182b5ff7f27SJin Yao        "CounterHTOff": "Fixed counter 1",
183b5ff7f27SJin Yao        "EventName": "CPU_CLK_UNHALTED.THREAD_ANY",
184b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
185b5ff7f27SJin Yao        "UMask": "0x2"
186b5ff7f27SJin Yao    },
187b5ff7f27SJin Yao    {
188b5ff7f27SJin Yao        "BriefDescription": "Counts the number of uops to be executed per-thread each cycle.",
189b5ff7f27SJin Yao        "Counter": "0,1,2,3",
190b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
191b5ff7f27SJin Yao        "EventCode": "0xB1",
192b5ff7f27SJin Yao        "EventName": "UOPS_EXECUTED.THREAD",
193b5ff7f27SJin Yao        "PublicDescription": "Number of uops to be executed per-thread each cycle.",
194b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
195b5ff7f27SJin Yao        "UMask": "0x1"
196b5ff7f27SJin Yao    },
197b5ff7f27SJin Yao    {
198b5ff7f27SJin Yao        "BriefDescription": "Cycles where at least 3 uops were executed per-thread",
199b5ff7f27SJin Yao        "Counter": "0,1,2,3",
200b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
201b5ff7f27SJin Yao        "CounterMask": "3",
202b5ff7f27SJin Yao        "EventCode": "0xB1",
203b5ff7f27SJin Yao        "EventName": "UOPS_EXECUTED.CYCLES_GE_3_UOPS_EXEC",
204b5ff7f27SJin Yao        "PublicDescription": "Cycles where at least 3 uops were executed per-thread.",
205b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
206b5ff7f27SJin Yao        "UMask": "0x1"
207b5ff7f27SJin Yao    },
208b5ff7f27SJin Yao    {
209b5ff7f27SJin Yao        "BriefDescription": "Cycles with no micro-ops executed from any thread on physical core.",
210b5ff7f27SJin Yao        "Counter": "0,1,2,3",
211b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
212b5ff7f27SJin Yao        "CounterMask": "1",
213b5ff7f27SJin Yao        "EventCode": "0xB1",
214b5ff7f27SJin Yao        "EventName": "UOPS_EXECUTED.CORE_CYCLES_NONE",
215b5ff7f27SJin Yao        "Invert": "1",
216b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
217b5ff7f27SJin Yao        "UMask": "0x2"
218b5ff7f27SJin Yao    },
219b5ff7f27SJin Yao    {
220b5ff7f27SJin Yao        "BriefDescription": "Cycles where the Store Buffer was full and no outstanding load.",
221b5ff7f27SJin Yao        "Counter": "0,1,2,3",
222b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
223b5ff7f27SJin Yao        "EventCode": "0xA6",
224b5ff7f27SJin Yao        "EventName": "EXE_ACTIVITY.BOUND_ON_STORES",
225b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
226b5ff7f27SJin Yao        "UMask": "0x40"
227b5ff7f27SJin Yao    },
228b5ff7f27SJin Yao    {
229b5ff7f27SJin Yao        "BriefDescription": "Cycles while L1 cache miss demand load is outstanding.",
230b5ff7f27SJin Yao        "Counter": "0,1,2,3",
231b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
232b5ff7f27SJin Yao        "CounterMask": "8",
233b5ff7f27SJin Yao        "EventCode": "0xA3",
234b5ff7f27SJin Yao        "EventName": "CYCLE_ACTIVITY.CYCLES_L1D_MISS",
235b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
236b5ff7f27SJin Yao        "UMask": "0x8"
237b5ff7f27SJin Yao    },
238b5ff7f27SJin Yao    {
239b5ff7f27SJin Yao        "BriefDescription": "Cycles Uops delivered by the LSD, but didn't come from the decoder.",
240b5ff7f27SJin Yao        "Counter": "0,1,2,3",
241b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
242b5ff7f27SJin Yao        "CounterMask": "1",
243b5ff7f27SJin Yao        "EventCode": "0xA8",
244b5ff7f27SJin Yao        "EventName": "LSD.CYCLES_ACTIVE",
245b5ff7f27SJin Yao        "PublicDescription": "Counts the cycles when at least one uop is delivered by the LSD (Loop-stream detector).",
246b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
247b5ff7f27SJin Yao        "UMask": "0x1"
248b5ff7f27SJin Yao    },
249b5ff7f27SJin Yao    {
250b5ff7f27SJin Yao        "BriefDescription": "Core cycles the allocator was stalled due to recovery from earlier clear event for this thread (e.g. misprediction or memory nuke)",
251b5ff7f27SJin Yao        "Counter": "0,1,2,3",
252b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
253b5ff7f27SJin Yao        "EventCode": "0x0D",
254b5ff7f27SJin Yao        "EventName": "INT_MISC.RECOVERY_CYCLES",
255b5ff7f27SJin Yao        "PublicDescription": "Core cycles the Resource allocator was stalled due to recovery from an earlier branch misprediction or machine clear event.",
256b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
257b5ff7f27SJin Yao        "UMask": "0x1"
258b5ff7f27SJin Yao    },
259b5ff7f27SJin Yao    {
260b5ff7f27SJin Yao        "BriefDescription": "Core crystal clock cycles when the thread is unhalted.",
261b5ff7f27SJin Yao        "Counter": "0,1,2,3",
262b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
263b5ff7f27SJin Yao        "EventCode": "0x3C",
264b5ff7f27SJin Yao        "EventName": "CPU_CLK_UNHALTED.REF_XCLK",
265b5ff7f27SJin Yao        "SampleAfterValue": "25003",
266b5ff7f27SJin Yao        "UMask": "0x1"
267b5ff7f27SJin Yao    },
268b5ff7f27SJin Yao    {
269b5ff7f27SJin Yao        "BriefDescription": "Cycles per thread when uops are executed in port 0",
270b5ff7f27SJin Yao        "Counter": "0,1,2,3",
271b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
272b5ff7f27SJin Yao        "EventCode": "0xA1",
273b5ff7f27SJin Yao        "EventName": "UOPS_DISPATCHED_PORT.PORT_0",
274b5ff7f27SJin Yao        "PublicDescription": "Counts, on the per-thread basis, cycles during which at least one uop is dispatched from the Reservation Station (RS) to port 0.",
275b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
276b5ff7f27SJin Yao        "UMask": "0x1"
277b5ff7f27SJin Yao    },
278b5ff7f27SJin Yao    {
279b5ff7f27SJin Yao        "BriefDescription": "Cycles per thread when uops are executed in port 1",
280b5ff7f27SJin Yao        "Counter": "0,1,2,3",
281b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
282b5ff7f27SJin Yao        "EventCode": "0xA1",
283b5ff7f27SJin Yao        "EventName": "UOPS_DISPATCHED_PORT.PORT_1",
284b5ff7f27SJin Yao        "PublicDescription": "Counts, on the per-thread basis, cycles during which at least one uop is dispatched from the Reservation Station (RS) to port 1.",
285b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
286b5ff7f27SJin Yao        "UMask": "0x2"
287b5ff7f27SJin Yao    },
288b5ff7f27SJin Yao    {
289b5ff7f27SJin Yao        "BriefDescription": "Cycles per thread when uops are executed in port 2",
290b5ff7f27SJin Yao        "Counter": "0,1,2,3",
291b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
292b5ff7f27SJin Yao        "EventCode": "0xA1",
293b5ff7f27SJin Yao        "EventName": "UOPS_DISPATCHED_PORT.PORT_2",
294b5ff7f27SJin Yao        "PublicDescription": "Counts, on the per-thread basis, cycles during which at least one uop is dispatched from the Reservation Station (RS) to port 2.",
295b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
296b5ff7f27SJin Yao        "UMask": "0x4"
297b5ff7f27SJin Yao    },
298b5ff7f27SJin Yao    {
299b5ff7f27SJin Yao        "BriefDescription": "Cycles per thread when uops are executed in port 3",
300b5ff7f27SJin Yao        "Counter": "0,1,2,3",
301b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
302b5ff7f27SJin Yao        "EventCode": "0xA1",
303b5ff7f27SJin Yao        "EventName": "UOPS_DISPATCHED_PORT.PORT_3",
304b5ff7f27SJin Yao        "PublicDescription": "Counts, on the per-thread basis, cycles during which at least one uop is dispatched from the Reservation Station (RS) to port 3.",
305b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
306b5ff7f27SJin Yao        "UMask": "0x8"
307b5ff7f27SJin Yao    },
308b5ff7f27SJin Yao    {
309b5ff7f27SJin Yao        "BriefDescription": "Cycles per thread when uops are executed in port 4",
310b5ff7f27SJin Yao        "Counter": "0,1,2,3",
311b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
312b5ff7f27SJin Yao        "EventCode": "0xA1",
313b5ff7f27SJin Yao        "EventName": "UOPS_DISPATCHED_PORT.PORT_4",
314b5ff7f27SJin Yao        "PublicDescription": "Counts, on the per-thread basis, cycles during which at least one uop is dispatched from the Reservation Station (RS) to port 4.",
315b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
316b5ff7f27SJin Yao        "UMask": "0x10"
317b5ff7f27SJin Yao    },
318b5ff7f27SJin Yao    {
319b5ff7f27SJin Yao        "BriefDescription": "Cycles per thread when uops are executed in port 5",
320b5ff7f27SJin Yao        "Counter": "0,1,2,3",
321b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
322b5ff7f27SJin Yao        "EventCode": "0xA1",
323b5ff7f27SJin Yao        "EventName": "UOPS_DISPATCHED_PORT.PORT_5",
324b5ff7f27SJin Yao        "PublicDescription": "Counts, on the per-thread basis, cycles during which at least one uop is dispatched from the Reservation Station (RS) to port 5.",
325b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
326b5ff7f27SJin Yao        "UMask": "0x20"
327b5ff7f27SJin Yao    },
328b5ff7f27SJin Yao    {
329b5ff7f27SJin Yao        "BriefDescription": "Cycles per thread when uops are executed in port 6",
330b5ff7f27SJin Yao        "Counter": "0,1,2,3",
331b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
332b5ff7f27SJin Yao        "EventCode": "0xA1",
333b5ff7f27SJin Yao        "EventName": "UOPS_DISPATCHED_PORT.PORT_6",
334b5ff7f27SJin Yao        "PublicDescription": "Counts, on the per-thread basis, cycles during which at least one uop is dispatched from the Reservation Station (RS) to port 6.",
335b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
336b5ff7f27SJin Yao        "UMask": "0x40"
337b5ff7f27SJin Yao    },
338b5ff7f27SJin Yao    {
339b5ff7f27SJin Yao        "BriefDescription": "Cycles per thread when uops are executed in port 7",
340b5ff7f27SJin Yao        "Counter": "0,1,2,3",
341b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
342b5ff7f27SJin Yao        "EventCode": "0xA1",
343b5ff7f27SJin Yao        "EventName": "UOPS_DISPATCHED_PORT.PORT_7",
344b5ff7f27SJin Yao        "PublicDescription": "Counts, on the per-thread basis, cycles during which at least one uop is dispatched from the Reservation Station (RS) to port 7.",
345b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
346b5ff7f27SJin Yao        "UMask": "0x80"
347b5ff7f27SJin Yao    },
348b5ff7f27SJin Yao    {
349b5ff7f27SJin Yao        "AnyThread": "1",
350b5ff7f27SJin Yao        "BriefDescription": "Core cycles the allocator was stalled due to recovery from earlier clear event for any thread running on the physical core (e.g. misprediction or memory nuke).",
351b5ff7f27SJin Yao        "Counter": "0,1,2,3",
352b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
353b5ff7f27SJin Yao        "EventCode": "0x0D",
354b5ff7f27SJin Yao        "EventName": "INT_MISC.RECOVERY_CYCLES_ANY",
355b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
356b5ff7f27SJin Yao        "UMask": "0x1"
357b5ff7f27SJin Yao    },
358b5ff7f27SJin Yao    {
359b5ff7f27SJin Yao        "BriefDescription": "Precise instruction retired event with HW to reduce effect of PEBS shadow in IP distribution",
360b5ff7f27SJin Yao        "Counter": "1",
361b5ff7f27SJin Yao        "CounterHTOff": "1",
362b5ff7f27SJin Yao        "Errata": "SKL091, SKL044",
363b5ff7f27SJin Yao        "EventCode": "0xC0",
364b5ff7f27SJin Yao        "EventName": "INST_RETIRED.PREC_DIST",
365b5ff7f27SJin Yao        "PEBS": "2",
366b5ff7f27SJin Yao        "PublicDescription": "A version of INST_RETIRED that allows for a more unbiased distribution of samples across instructions retired. It utilizes the Precise Distribution of Instructions Retired (PDIR) feature to mitigate some bias in how retired instructions get sampled.",
367b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
368b5ff7f27SJin Yao        "UMask": "0x1"
369b5ff7f27SJin Yao    },
370b5ff7f27SJin Yao    {
371b5ff7f27SJin Yao        "BriefDescription": "Cycles 4 Uops delivered by the LSD, but didn't come from the decoder.",
372b5ff7f27SJin Yao        "Counter": "0,1,2,3",
373b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
374b5ff7f27SJin Yao        "CounterMask": "4",
375b5ff7f27SJin Yao        "EventCode": "0xA8",
376b5ff7f27SJin Yao        "EventName": "LSD.CYCLES_4_UOPS",
377b5ff7f27SJin Yao        "PublicDescription": "Counts the cycles when 4 uops are delivered by the LSD (Loop-stream detector).",
378b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
379b5ff7f27SJin Yao        "UMask": "0x1"
380b5ff7f27SJin Yao    },
381b5ff7f27SJin Yao    {
382b5ff7f27SJin Yao        "BriefDescription": "Cycles total of 3 uops are executed on all ports and Reservation Station was not empty.",
383b5ff7f27SJin Yao        "Counter": "0,1,2,3",
384b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
385b5ff7f27SJin Yao        "EventCode": "0xA6",
386b5ff7f27SJin Yao        "EventName": "EXE_ACTIVITY.3_PORTS_UTIL",
387b5ff7f27SJin Yao        "PublicDescription": "Cycles total of 3 uops are executed on all ports and Reservation Station (RS) was not empty.",
388b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
389b5ff7f27SJin Yao        "UMask": "0x8"
390b5ff7f27SJin Yao    },
391b5ff7f27SJin Yao    {
392b5ff7f27SJin Yao        "BriefDescription": "Loads blocked due to overlapping with a preceding store that cannot be forwarded.",
393b5ff7f27SJin Yao        "Counter": "0,1,2,3",
394b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
395b5ff7f27SJin Yao        "EventCode": "0x03",
396b5ff7f27SJin Yao        "EventName": "LD_BLOCKS.STORE_FORWARD",
397b5ff7f27SJin Yao        "PublicDescription": "Counts the number of times where store forwarding was prevented for a load operation. The most common case is a load blocked due to the address of memory access (partially) overlapping with a preceding uncompleted store. Note: See the table of not supported store forwards in the Optimization Guide.",
398b5ff7f27SJin Yao        "SampleAfterValue": "100003",
399b5ff7f27SJin Yao        "UMask": "0x2"
400b5ff7f27SJin Yao    },
401b5ff7f27SJin Yao    {
402b5ff7f27SJin Yao        "BriefDescription": "Counts end of periods where the Reservation Station (RS) was empty. Could be useful to precisely locate Frontend Latency Bound issues.",
403b5ff7f27SJin Yao        "Counter": "0,1,2,3",
404b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
405b5ff7f27SJin Yao        "CounterMask": "1",
406b5ff7f27SJin Yao        "EdgeDetect": "1",
407b5ff7f27SJin Yao        "EventCode": "0x5E",
408b5ff7f27SJin Yao        "EventName": "RS_EVENTS.EMPTY_END",
409b5ff7f27SJin Yao        "Invert": "1",
410b5ff7f27SJin Yao        "PublicDescription": "Counts end of periods where the Reservation Station (RS) was empty. Could be useful to precisely locate front-end Latency Bound issues.",
411b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
412b5ff7f27SJin Yao        "UMask": "0x1"
413b5ff7f27SJin Yao    },
414b5ff7f27SJin Yao    {
415b5ff7f27SJin Yao        "AnyThread": "1",
416b5ff7f27SJin Yao        "BriefDescription": "Core crystal clock cycles when at least one thread on the physical core is unhalted.",
417b5ff7f27SJin Yao        "Counter": "0,1,2,3",
418b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
419b5ff7f27SJin Yao        "EventCode": "0x3C",
420b5ff7f27SJin Yao        "EventName": "CPU_CLK_THREAD_UNHALTED.REF_XCLK_ANY",
421b5ff7f27SJin Yao        "SampleAfterValue": "25003",
422b5ff7f27SJin Yao        "UMask": "0x1"
423b5ff7f27SJin Yao    },
424b5ff7f27SJin Yao    {
425b5ff7f27SJin Yao        "BriefDescription": "Cycles where the pipeline is stalled due to serializing operations.",
426b5ff7f27SJin Yao        "Counter": "0,1,2,3",
427b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
428b5ff7f27SJin Yao        "EventCode": "0x59",
429b5ff7f27SJin Yao        "EventName": "PARTIAL_RAT_STALLS.SCOREBOARD",
430b5ff7f27SJin Yao        "PublicDescription": "This event counts cycles during which the microcode scoreboard stalls happen.",
431b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
432b5ff7f27SJin Yao        "UMask": "0x1"
433b5ff7f27SJin Yao    },
434b5ff7f27SJin Yao    {
435b5ff7f27SJin Yao        "BriefDescription": "Cycles when Resource Allocation Table (RAT) does not issue Uops to Reservation Station (RS) for the thread",
436b5ff7f27SJin Yao        "Counter": "0,1,2,3",
437b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
438b5ff7f27SJin Yao        "CounterMask": "1",
439b5ff7f27SJin Yao        "EventCode": "0x0E",
440b5ff7f27SJin Yao        "EventName": "UOPS_ISSUED.STALL_CYCLES",
441b5ff7f27SJin Yao        "Invert": "1",
442b5ff7f27SJin Yao        "PublicDescription": "Counts cycles during which the Resource Allocation Table (RAT) does not issue any Uops to the reservation station (RS) for the current thread.",
443b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
444b5ff7f27SJin Yao        "UMask": "0x1"
445b5ff7f27SJin Yao    },
446b5ff7f27SJin Yao    {
447b5ff7f27SJin Yao        "BriefDescription": "Not taken branch instructions retired.",
448b5ff7f27SJin Yao        "Counter": "0,1,2,3",
449b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
450b5ff7f27SJin Yao        "Errata": "SKL091",
451b5ff7f27SJin Yao        "EventCode": "0xc4",
452b5ff7f27SJin Yao        "EventName": "BR_INST_RETIRED.COND_NTAKEN",
453b5ff7f27SJin Yao        "PublicDescription": "This event counts not taken branch instructions retired.",
454b5ff7f27SJin Yao        "SampleAfterValue": "400009",
455b5ff7f27SJin Yao        "UMask": "0x10"
456b5ff7f27SJin Yao    },
457b5ff7f27SJin Yao    {
458b5ff7f27SJin Yao        "BriefDescription": "Cycles at least 3 micro-op is executed from any thread on physical core.",
459b5ff7f27SJin Yao        "Counter": "0,1,2,3",
460b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
461b5ff7f27SJin Yao        "CounterMask": "3",
462b5ff7f27SJin Yao        "EventCode": "0xB1",
463b5ff7f27SJin Yao        "EventName": "UOPS_EXECUTED.CORE_CYCLES_GE_3",
464b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
465b5ff7f27SJin Yao        "UMask": "0x2"
466b5ff7f27SJin Yao    },
467b5ff7f27SJin Yao    {
468b5ff7f27SJin Yao        "BriefDescription": "Cycles at least 1 micro-op is executed from any thread on physical core.",
469b5ff7f27SJin Yao        "Counter": "0,1,2,3",
470b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
471b5ff7f27SJin Yao        "CounterMask": "1",
472b5ff7f27SJin Yao        "EventCode": "0xB1",
473b5ff7f27SJin Yao        "EventName": "UOPS_EXECUTED.CORE_CYCLES_GE_1",
474b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
475b5ff7f27SJin Yao        "UMask": "0x2"
476b5ff7f27SJin Yao    },
477b5ff7f27SJin Yao    {
478b5ff7f27SJin Yao        "BriefDescription": "Cycles at least 4 micro-op is executed from any thread on physical core.",
479b5ff7f27SJin Yao        "Counter": "0,1,2,3",
480b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
481b5ff7f27SJin Yao        "CounterMask": "4",
482b5ff7f27SJin Yao        "EventCode": "0xB1",
483b5ff7f27SJin Yao        "EventName": "UOPS_EXECUTED.CORE_CYCLES_GE_4",
484b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
485b5ff7f27SJin Yao        "UMask": "0x2"
486b5ff7f27SJin Yao    },
487b5ff7f27SJin Yao    {
488b5ff7f27SJin Yao        "BriefDescription": "Reference cycles when the core is not in halt state.",
489b5ff7f27SJin Yao        "Counter": "Fixed counter 2",
490b5ff7f27SJin Yao        "CounterHTOff": "Fixed counter 2",
491b5ff7f27SJin Yao        "EventName": "CPU_CLK_UNHALTED.REF_TSC",
492b5ff7f27SJin Yao        "PublicDescription": "Counts the number of reference cycles when the core is not in a halt state. The core enters the halt state when it is running the HLT instruction or the MWAIT instruction. This event is not affected by core frequency changes (for example, P states, TM2 transitions) but has the same incrementing frequency as the time stamp counter. This event can approximate elapsed time while the core was not in a halt state. This event has a constant ratio with the CPU_CLK_UNHALTED.REF_XCLK event. It is counted on a dedicated fixed counter, leaving the four (eight when Hyperthreading is disabled) programmable counters available for other events. Note: On all current platforms this event stops counting during 'throttling (TM)' states duty off periods the processor is 'halted'.  The counter update is done at a lower clock rate then the core clock the overflow status bit for this counter may appear 'sticky'.  After the counter has overflowed and software clears the overflow status bit and resets the counter to less than MAX. The reset value to the counter is not clocked immediately so the overflow status bit will flip 'high (1)' and generate another PMI (if enabled) after which the reset value gets clocked into the counter. Therefore, software will get the interrupt, read the overflow status bit '1 for bit 34 while the counter value is less than MAX. Software should ignore this case.",
493b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
494b5ff7f27SJin Yao        "UMask": "0x3"
495b5ff7f27SJin Yao    },
496b5ff7f27SJin Yao    {
497b5ff7f27SJin Yao        "BriefDescription": "All mispredicted macro branch instructions retired.",
498b5ff7f27SJin Yao        "Counter": "0,1,2,3",
499b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
500b5ff7f27SJin Yao        "EventCode": "0xC5",
501b5ff7f27SJin Yao        "EventName": "BR_MISP_RETIRED.ALL_BRANCHES",
502b5ff7f27SJin Yao        "PublicDescription": "Counts all the retired branch instructions that were mispredicted by the processor. A branch misprediction occurs when the processor incorrectly predicts the destination of the branch.  When the misprediction is discovered at execution, all the instructions executed in the wrong (speculative) path must be discarded, and the processor must start fetching from the correct path.",
503b5ff7f27SJin Yao        "SampleAfterValue": "400009"
504b5ff7f27SJin Yao    },
505b5ff7f27SJin Yao    {
506b5ff7f27SJin Yao        "BriefDescription": "Number of times a microcode assist is invoked by HW other than FP-assist. Examples include AD (page Access Dirty) and AVX* related assists.",
507b5ff7f27SJin Yao        "Counter": "0,1,2,3",
508b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
509b5ff7f27SJin Yao        "EventCode": "0xC1",
510b5ff7f27SJin Yao        "EventName": "OTHER_ASSISTS.ANY",
511b5ff7f27SJin Yao        "SampleAfterValue": "100003",
512b5ff7f27SJin Yao        "UMask": "0x3f"
513b5ff7f27SJin Yao    },
514b5ff7f27SJin Yao    {
515b5ff7f27SJin Yao        "BriefDescription": "Cycles without actually retired uops.",
516b5ff7f27SJin Yao        "Counter": "0,1,2,3",
517b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
518b5ff7f27SJin Yao        "CounterMask": "1",
519b5ff7f27SJin Yao        "EventCode": "0xC2",
520b5ff7f27SJin Yao        "EventName": "UOPS_RETIRED.STALL_CYCLES",
521b5ff7f27SJin Yao        "Invert": "1",
522b5ff7f27SJin Yao        "PublicDescription": "This event counts cycles without actually retired uops.",
523b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
524b5ff7f27SJin Yao        "UMask": "0x2"
525b5ff7f27SJin Yao    },
526b5ff7f27SJin Yao    {
527b5ff7f27SJin Yao        "BriefDescription": "Number of Uops delivered by the LSD.",
528b5ff7f27SJin Yao        "Counter": "0,1,2,3",
529b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
530b5ff7f27SJin Yao        "EventCode": "0xA8",
531b5ff7f27SJin Yao        "EventName": "LSD.UOPS",
532b5ff7f27SJin Yao        "PublicDescription": "Number of uops delivered to the back-end by the LSD(Loop Stream Detector).",
533b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
534b5ff7f27SJin Yao        "UMask": "0x1"
535b5ff7f27SJin Yao    },
536b5ff7f27SJin Yao    {
537b5ff7f27SJin Yao        "BriefDescription": "Core crystal clock cycles when this thread is unhalted and the other thread is halted.",
538b5ff7f27SJin Yao        "Counter": "0,1,2,3",
539b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
540b5ff7f27SJin Yao        "EventCode": "0x3C",
541b5ff7f27SJin Yao        "EventName": "CPU_CLK_THREAD_UNHALTED.ONE_THREAD_ACTIVE",
542b5ff7f27SJin Yao        "SampleAfterValue": "25003",
543b5ff7f27SJin Yao        "UMask": "0x2"
544b5ff7f27SJin Yao    },
545b5ff7f27SJin Yao    {
546b5ff7f27SJin Yao        "BriefDescription": "Stalls caused by changing prefix length of the instruction.",
547b5ff7f27SJin Yao        "Counter": "0,1,2,3",
548b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
549b5ff7f27SJin Yao        "EventCode": "0x87",
550b5ff7f27SJin Yao        "EventName": "ILD_STALL.LCP",
551b5ff7f27SJin Yao        "PublicDescription": "Counts cycles that the Instruction Length decoder (ILD) stalls occurred due to dynamically changing prefix length of the decoded instruction (by operand size prefix instruction 0x66, address size prefix instruction 0x67 or REX.W for Intel64). Count is proportional to the number of prefixes in a 16B-line. This may result in a three-cycle penalty for each LCP (Length changing prefix) in a 16-byte chunk.",
552b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
553b5ff7f27SJin Yao        "UMask": "0x1"
554b5ff7f27SJin Yao    },
555b5ff7f27SJin Yao    {
556b5ff7f27SJin Yao        "BriefDescription": "Cycles while memory subsystem has an outstanding load.",
557b5ff7f27SJin Yao        "Counter": "0,1,2,3",
558b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
559b5ff7f27SJin Yao        "CounterMask": "16",
560b5ff7f27SJin Yao        "EventCode": "0xA3",
561b5ff7f27SJin Yao        "EventName": "CYCLE_ACTIVITY.CYCLES_MEM_ANY",
562b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
563b5ff7f27SJin Yao        "UMask": "0x10"
564b5ff7f27SJin Yao    },
565b5ff7f27SJin Yao    {
566b5ff7f27SJin Yao        "BriefDescription": "Taken branch instructions retired.",
567b5ff7f27SJin Yao        "Counter": "0,1,2,3",
568b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
569b5ff7f27SJin Yao        "Errata": "SKL091",
570b5ff7f27SJin Yao        "EventCode": "0xC4",
571b5ff7f27SJin Yao        "EventName": "BR_INST_RETIRED.NEAR_TAKEN",
572b5ff7f27SJin Yao        "PEBS": "1",
573b5ff7f27SJin Yao        "PublicDescription": "This event counts taken branch instructions retired.",
574b5ff7f27SJin Yao        "SampleAfterValue": "400009",
575b5ff7f27SJin Yao        "UMask": "0x20"
576b5ff7f27SJin Yao    },
577b5ff7f27SJin Yao    {
578b5ff7f27SJin Yao        "BriefDescription": "The number of times that split load operations are temporarily blocked because all resources for handling the split accesses are in use",
579b5ff7f27SJin Yao        "Counter": "0,1,2,3",
580b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
581b5ff7f27SJin Yao        "EventCode": "0x03",
582b5ff7f27SJin Yao        "EventName": "LD_BLOCKS.NO_SR",
583b5ff7f27SJin Yao        "PublicDescription": "The number of times that split load operations are temporarily blocked because all resources for handling the split accesses are in use.",
584b5ff7f27SJin Yao        "SampleAfterValue": "100003",
585b5ff7f27SJin Yao        "UMask": "0x8"
586b5ff7f27SJin Yao    },
587b5ff7f27SJin Yao    {
588b5ff7f27SJin Yao        "BriefDescription": "Uops that Resource Allocation Table (RAT) issues to Reservation Station (RS)",
589b5ff7f27SJin Yao        "Counter": "0,1,2,3",
590b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
591b5ff7f27SJin Yao        "EventCode": "0x0E",
592b5ff7f27SJin Yao        "EventName": "UOPS_ISSUED.ANY",
593b5ff7f27SJin Yao        "PublicDescription": "Counts the number of uops that the Resource Allocation Table (RAT) issues to the Reservation Station (RS).",
594b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
595b5ff7f27SJin Yao        "UMask": "0x1"
596b5ff7f27SJin Yao    },
597b5ff7f27SJin Yao    {
598b5ff7f27SJin Yao        "BriefDescription": "Core cycles when the thread is not in halt state",
599b5ff7f27SJin Yao        "Counter": "Fixed counter 1",
600b5ff7f27SJin Yao        "CounterHTOff": "Fixed counter 1",
601b5ff7f27SJin Yao        "EventName": "CPU_CLK_UNHALTED.THREAD",
602b5ff7f27SJin Yao        "PublicDescription": "Counts the number of core cycles while the thread is not in a halt state. The thread enters the halt state when it is running the HLT instruction. This event is a component in many key event ratios. The core frequency may change from time to time due to transitions associated with Enhanced Intel SpeedStep Technology or TM2. For this reason this event may have a changing ratio with regards to time. When the core frequency is constant, this event can approximate elapsed time while the core was not in the halt state. It is counted on a dedicated fixed counter, leaving the four (eight when Hyperthreading is disabled) programmable counters available for other events.",
603b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
604b5ff7f27SJin Yao        "UMask": "0x2"
605b5ff7f27SJin Yao    },
606b5ff7f27SJin Yao    {
607b5ff7f27SJin Yao        "AnyThread": "1",
608b5ff7f27SJin Yao        "BriefDescription": "Core crystal clock cycles when at least one thread on the physical core is unhalted.",
609b5ff7f27SJin Yao        "Counter": "0,1,2,3",
610b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
611b5ff7f27SJin Yao        "EventCode": "0x3C",
612b5ff7f27SJin Yao        "EventName": "CPU_CLK_UNHALTED.REF_XCLK_ANY",
613b5ff7f27SJin Yao        "SampleAfterValue": "25003",
614b5ff7f27SJin Yao        "UMask": "0x1"
615b5ff7f27SJin Yao    },
616b5ff7f27SJin Yao    {
617b5ff7f27SJin Yao        "BriefDescription": "Direct and indirect near call instructions retired.",
618b5ff7f27SJin Yao        "Counter": "0,1,2,3",
619b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
620b5ff7f27SJin Yao        "Errata": "SKL091",
621b5ff7f27SJin Yao        "EventCode": "0xC4",
622b5ff7f27SJin Yao        "EventName": "BR_INST_RETIRED.NEAR_CALL",
623b5ff7f27SJin Yao        "PEBS": "1",
624b5ff7f27SJin Yao        "PublicDescription": "This event counts both direct and indirect near call instructions retired.",
625b5ff7f27SJin Yao        "SampleAfterValue": "100007",
626b5ff7f27SJin Yao        "UMask": "0x2"
627b5ff7f27SJin Yao    },
628b5ff7f27SJin Yao    {
629b5ff7f27SJin Yao        "BriefDescription": "Number of retired PAUSE instructions (that do not end up with a VMExit to the VMM; TSX aborted Instructions may be counted). This event is not supported on first SKL and KBL products.",
630b5ff7f27SJin Yao        "Counter": "0,1,2,3",
631b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
632b5ff7f27SJin Yao        "EventCode": "0xCC",
633b5ff7f27SJin Yao        "EventName": "ROB_MISC_EVENTS.PAUSE_INST",
634b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
635b5ff7f27SJin Yao        "UMask": "0x40"
636b5ff7f27SJin Yao    },
637b5ff7f27SJin Yao    {
638b5ff7f27SJin Yao        "BriefDescription": "Resource-related stall cycles",
639b5ff7f27SJin Yao        "Counter": "0,1,2,3",
640b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
641b5ff7f27SJin Yao        "EventCode": "0xa2",
642b5ff7f27SJin Yao        "EventName": "RESOURCE_STALLS.ANY",
643b5ff7f27SJin Yao        "PublicDescription": "Counts resource-related stall cycles.",
644b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
645b5ff7f27SJin Yao        "UMask": "0x1"
646b5ff7f27SJin Yao    },
647b5ff7f27SJin Yao    {
648630171d4SAndi Kleen        "BriefDescription": "Self-modifying code (SMC) detected.",
649630171d4SAndi Kleen        "Counter": "0,1,2,3",
650b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
651b5ff7f27SJin Yao        "EventCode": "0xC3",
652630171d4SAndi Kleen        "EventName": "MACHINE_CLEARS.SMC",
653630171d4SAndi Kleen        "PublicDescription": "Counts self-modifying code (SMC) detected, which causes a machine clear.",
654630171d4SAndi Kleen        "SampleAfterValue": "100003",
655b5ff7f27SJin Yao        "UMask": "0x4"
656630171d4SAndi Kleen    },
657630171d4SAndi Kleen    {
658b5ff7f27SJin Yao        "BriefDescription": "Core crystal clock cycles when this thread is unhalted and the other thread is halted.",
659630171d4SAndi Kleen        "Counter": "0,1,2,3",
660b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
661b5ff7f27SJin Yao        "EventCode": "0x3C",
662b5ff7f27SJin Yao        "EventName": "CPU_CLK_UNHALTED.ONE_THREAD_ACTIVE",
663b5ff7f27SJin Yao        "SampleAfterValue": "25003",
664b5ff7f27SJin Yao        "UMask": "0x2"
665630171d4SAndi Kleen    },
666630171d4SAndi Kleen    {
667b5ff7f27SJin Yao        "BriefDescription": "Cycles where at least 4 uops were executed per-thread",
668630171d4SAndi Kleen        "Counter": "0,1,2,3",
669b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
670b5ff7f27SJin Yao        "CounterMask": "4",
671b5ff7f27SJin Yao        "EventCode": "0xB1",
672b5ff7f27SJin Yao        "EventName": "UOPS_EXECUTED.CYCLES_GE_4_UOPS_EXEC",
673b5ff7f27SJin Yao        "PublicDescription": "Cycles where at least 4 uops were executed per-thread.",
674b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
675b5ff7f27SJin Yao        "UMask": "0x1"
676630171d4SAndi Kleen    },
677630171d4SAndi Kleen    {
678630171d4SAndi Kleen        "BriefDescription": "Number of near branch instructions retired that were mispredicted and taken.",
679630171d4SAndi Kleen        "Counter": "0,1,2,3",
680b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
681b5ff7f27SJin Yao        "EventCode": "0xC5",
682630171d4SAndi Kleen        "EventName": "BR_MISP_RETIRED.NEAR_TAKEN",
683b5ff7f27SJin Yao        "PEBS": "1",
684630171d4SAndi Kleen        "SampleAfterValue": "400009",
685b5ff7f27SJin Yao        "UMask": "0x20"
686630171d4SAndi Kleen    },
687630171d4SAndi Kleen    {
688b5ff7f27SJin Yao        "BriefDescription": "Execution stalls while memory subsystem has an outstanding load.",
689b5ff7f27SJin Yao        "Counter": "0,1,2,3",
690b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3",
691b5ff7f27SJin Yao        "CounterMask": "20",
692b5ff7f27SJin Yao        "EventCode": "0xA3",
693b5ff7f27SJin Yao        "EventName": "CYCLE_ACTIVITY.STALLS_MEM_ANY",
694b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
695b5ff7f27SJin Yao        "UMask": "0x14"
696b5ff7f27SJin Yao    },
697b5ff7f27SJin Yao    {
698b5ff7f27SJin Yao        "BriefDescription": "Cycles where no uops were executed, the Reservation Station was not empty, the Store Buffer was full and there was no outstanding load.",
699b5ff7f27SJin Yao        "Counter": "0,1,2,3",
700b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
701b5ff7f27SJin Yao        "EventCode": "0xA6",
702b5ff7f27SJin Yao        "EventName": "EXE_ACTIVITY.EXE_BOUND_0_PORTS",
703b5ff7f27SJin Yao        "PublicDescription": "Counts cycles during which no uops were executed on all ports and Reservation Station (RS) was not empty.",
704b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
705b5ff7f27SJin Yao        "UMask": "0x1"
706b5ff7f27SJin Yao    },
707b5ff7f27SJin Yao    {
708b5ff7f27SJin Yao        "BriefDescription": "Number of cycles using always true condition applied to  PEBS instructions retired event.",
709b5ff7f27SJin Yao        "Counter": "0,2,3",
710b5ff7f27SJin Yao        "CounterHTOff": "0,2,3",
711b5ff7f27SJin Yao        "CounterMask": "10",
712b5ff7f27SJin Yao        "Errata": "SKL091, SKL044",
713b5ff7f27SJin Yao        "EventCode": "0xC0",
714b5ff7f27SJin Yao        "EventName": "INST_RETIRED.TOTAL_CYCLES_PS",
715b5ff7f27SJin Yao        "Invert": "1",
716b5ff7f27SJin Yao        "PEBS": "2",
717b5ff7f27SJin Yao        "PublicDescription": "Number of cycles using an always true condition applied to  PEBS instructions retired event. (inst_ret< 16)",
718b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
719b5ff7f27SJin Yao        "UMask": "0x1"
720b5ff7f27SJin Yao    },
721b5ff7f27SJin Yao    {
722b5ff7f27SJin Yao        "BriefDescription": "Retirement slots used.",
723b5ff7f27SJin Yao        "Counter": "0,1,2,3",
724b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
725b5ff7f27SJin Yao        "EventCode": "0xC2",
726b5ff7f27SJin Yao        "EventName": "UOPS_RETIRED.RETIRE_SLOTS",
727b5ff7f27SJin Yao        "PublicDescription": "Counts the retirement slots used.",
728b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
729b5ff7f27SJin Yao        "UMask": "0x2"
730b5ff7f27SJin Yao    },
731b5ff7f27SJin Yao    {
732b5ff7f27SJin Yao        "AnyThread": "1",
733b5ff7f27SJin Yao        "BriefDescription": "Core cycles when at least one thread on the physical core is not in halt state.",
734b5ff7f27SJin Yao        "Counter": "0,1,2,3",
735b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
736b5ff7f27SJin Yao        "EventCode": "0x3C",
737b5ff7f27SJin Yao        "EventName": "CPU_CLK_UNHALTED.THREAD_P_ANY",
738b5ff7f27SJin Yao        "SampleAfterValue": "2000003"
739b5ff7f27SJin Yao    },
740b5ff7f27SJin Yao    {
741b5ff7f27SJin Yao        "BriefDescription": "Uops inserted at issue-stage in order to preserve upper bits of vector registers.",
742b5ff7f27SJin Yao        "Counter": "0,1,2,3",
743b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
744b5ff7f27SJin Yao        "EventCode": "0x0E",
745b5ff7f27SJin Yao        "EventName": "UOPS_ISSUED.VECTOR_WIDTH_MISMATCH",
746b5ff7f27SJin Yao        "PublicDescription": "Counts the number of Blend Uops issued by the Resource Allocation Table (RAT) to the reservation station (RS) in order to preserve upper bits of vector registers. Starting with the Skylake microarchitecture, these Blend uops are needed since every Intel SSE instruction executed in Dirty Upper State needs to preserve bits 128-255 of the destination register. For more information, refer to Mixing Intel AVX and Intel SSE Code section of the Optimization Guide.",
747b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
748b5ff7f27SJin Yao        "UMask": "0x2"
749b5ff7f27SJin Yao    },
750b5ff7f27SJin Yao    {
751630171d4SAndi Kleen        "BriefDescription": "Increments whenever there is an update to the LBR array.",
752630171d4SAndi Kleen        "Counter": "0,1,2,3",
753b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
754b5ff7f27SJin Yao        "EventCode": "0xCC",
755630171d4SAndi Kleen        "EventName": "ROB_MISC_EVENTS.LBR_INSERTS",
756630171d4SAndi Kleen        "PublicDescription": "Increments when an entry is added to the Last Branch Record (LBR) array (or removed from the array in case of RETURNs in call stack mode). The event requires LBR enable via IA32_DEBUGCTL MSR and branch type selection via MSR_LBR_SELECT.",
757630171d4SAndi Kleen        "SampleAfterValue": "2000003",
758b5ff7f27SJin Yao        "UMask": "0x20"
759630171d4SAndi Kleen    },
760630171d4SAndi Kleen    {
761b5ff7f27SJin Yao        "BriefDescription": "Cycles when Reservation Station (RS) is empty for the thread",
76219f2d40cSAndi Kleen        "Counter": "0,1,2,3",
763b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
764b5ff7f27SJin Yao        "EventCode": "0x5E",
765b5ff7f27SJin Yao        "EventName": "RS_EVENTS.EMPTY_CYCLES",
766b5ff7f27SJin Yao        "PublicDescription": "Counts cycles during which the reservation station (RS) is empty for the thread.; Note: In ST-mode, not active thread should drive 0. This is usually caused by severely costly branch mispredictions, or allocator/FE issues.",
76719f2d40cSAndi Kleen        "SampleAfterValue": "2000003",
768b5ff7f27SJin Yao        "UMask": "0x1"
76919f2d40cSAndi Kleen    },
77019f2d40cSAndi Kleen    {
771b5ff7f27SJin Yao        "BriefDescription": "Return instructions retired.",
772630171d4SAndi Kleen        "Counter": "0,1,2,3",
773b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
774b5ff7f27SJin Yao        "Errata": "SKL091",
775b5ff7f27SJin Yao        "EventCode": "0xC4",
776b5ff7f27SJin Yao        "EventName": "BR_INST_RETIRED.NEAR_RETURN",
777b5ff7f27SJin Yao        "PEBS": "1",
778b5ff7f27SJin Yao        "PublicDescription": "This event counts return instructions retired.",
779b5ff7f27SJin Yao        "SampleAfterValue": "100007",
780b5ff7f27SJin Yao        "UMask": "0x8"
781b5ff7f27SJin Yao    },
782b5ff7f27SJin Yao    {
783b5ff7f27SJin Yao        "BriefDescription": "Instructions retired from execution.",
784b5ff7f27SJin Yao        "Counter": "Fixed counter 0",
785b5ff7f27SJin Yao        "CounterHTOff": "Fixed counter 0",
786b5ff7f27SJin Yao        "EventName": "INST_RETIRED.ANY",
787b5ff7f27SJin Yao        "PublicDescription": "Counts the number of instructions retired from execution. For instructions that consist of multiple micro-ops, Counts the retirement of the last micro-op of the instruction. Counting continues during hardware interrupts, traps, and inside interrupt handlers. Notes: INST_RETIRED.ANY is counted by a designated fixed counter, leaving the four (eight when Hyperthreading is disabled) programmable counters available for other events. INST_RETIRED.ANY_P is counted by a programmable counter and it is an architectural performance event. Counting: Faulting executions of GETSEC/VM entry/VM Exit/MWait will not count as retired instructions.",
788b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
789b5ff7f27SJin Yao        "UMask": "0x1"
790b5ff7f27SJin Yao    },
791b5ff7f27SJin Yao    {
792b5ff7f27SJin Yao        "BriefDescription": "Cycles at least 2 micro-op is executed from any thread on physical core.",
793b5ff7f27SJin Yao        "Counter": "0,1,2,3",
794b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
795b5ff7f27SJin Yao        "CounterMask": "2",
796b5ff7f27SJin Yao        "EventCode": "0xB1",
797b5ff7f27SJin Yao        "EventName": "UOPS_EXECUTED.CORE_CYCLES_GE_2",
798b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
799b5ff7f27SJin Yao        "UMask": "0x2"
800b5ff7f27SJin Yao    },
801b5ff7f27SJin Yao    {
802b5ff7f27SJin Yao        "BriefDescription": "Cycles stalled due to no store buffers available. (not including draining form sync).",
803b5ff7f27SJin Yao        "Counter": "0,1,2,3",
804b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
805b5ff7f27SJin Yao        "EventCode": "0xA2",
806b5ff7f27SJin Yao        "EventName": "RESOURCE_STALLS.SB",
807b5ff7f27SJin Yao        "PublicDescription": "Counts allocation stall cycles caused by the store buffer (SB) being full. This counts cycles that the pipeline back-end blocked uop delivery from the front-end.",
808b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
809b5ff7f27SJin Yao        "UMask": "0x8"
810b5ff7f27SJin Yao    },
811b5ff7f27SJin Yao    {
812b5ff7f27SJin Yao        "BriefDescription": "Counts when there is a transition from ring 1, 2 or 3 to ring 0.",
813b5ff7f27SJin Yao        "Counter": "0,1,2,3",
814b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
815b5ff7f27SJin Yao        "CounterMask": "1",
816b5ff7f27SJin Yao        "EdgeDetect": "1",
817b5ff7f27SJin Yao        "EventCode": "0x3C",
818b5ff7f27SJin Yao        "EventName": "CPU_CLK_UNHALTED.RING0_TRANS",
819b5ff7f27SJin Yao        "PublicDescription": "Counts when the Current Privilege Level (CPL) transitions from ring 1, 2 or 3 to ring 0 (Kernel).",
820b5ff7f27SJin Yao        "SampleAfterValue": "100007"
821b5ff7f27SJin Yao    },
822b5ff7f27SJin Yao    {
823b5ff7f27SJin Yao        "BriefDescription": "All (macro) branch instructions retired.",
824b5ff7f27SJin Yao        "Counter": "0,1,2,3",
825b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3",
826b5ff7f27SJin Yao        "Errata": "SKL091",
827b5ff7f27SJin Yao        "EventCode": "0xC4",
828b5ff7f27SJin Yao        "EventName": "BR_INST_RETIRED.ALL_BRANCHES_PEBS",
829b5ff7f27SJin Yao        "PEBS": "2",
830b5ff7f27SJin Yao        "PublicDescription": "This is a precise version of BR_INST_RETIRED.ALL_BRANCHES that counts all (macro) branch instructions retired.",
831b5ff7f27SJin Yao        "SampleAfterValue": "400009",
832b5ff7f27SJin Yao        "UMask": "0x4"
833b5ff7f27SJin Yao    },
834b5ff7f27SJin Yao    {
835b5ff7f27SJin Yao        "BriefDescription": "Mispredicted macro branch instructions retired.",
836b5ff7f27SJin Yao        "Counter": "0,1,2,3",
837b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3",
838b5ff7f27SJin Yao        "EventCode": "0xC5",
839b5ff7f27SJin Yao        "EventName": "BR_MISP_RETIRED.ALL_BRANCHES_PEBS",
840b5ff7f27SJin Yao        "PEBS": "2",
841b5ff7f27SJin Yao        "PublicDescription": "This is a precise version of BR_MISP_RETIRED.ALL_BRANCHES that counts all mispredicted macro branch instructions retired.",
842b5ff7f27SJin Yao        "SampleAfterValue": "400009",
843b5ff7f27SJin Yao        "UMask": "0x4"
844b5ff7f27SJin Yao    },
845b5ff7f27SJin Yao    {
846b5ff7f27SJin Yao        "BriefDescription": "Cycles total of 1 uop is executed on all ports and Reservation Station was not empty.",
847b5ff7f27SJin Yao        "Counter": "0,1,2,3",
848b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
849b5ff7f27SJin Yao        "EventCode": "0xA6",
850b5ff7f27SJin Yao        "EventName": "EXE_ACTIVITY.1_PORTS_UTIL",
851b5ff7f27SJin Yao        "PublicDescription": "Counts cycles during which a total of 1 uop was executed on all ports and Reservation Station (RS) was not empty.",
852b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
853b5ff7f27SJin Yao        "UMask": "0x2"
854b5ff7f27SJin Yao    },
855b5ff7f27SJin Yao    {
856b5ff7f27SJin Yao        "BriefDescription": "Not taken branch instructions retired.",
857b5ff7f27SJin Yao        "Counter": "0,1,2,3",
858b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
859b5ff7f27SJin Yao        "Errata": "SKL091",
860b5ff7f27SJin Yao        "EventCode": "0xC4",
861b5ff7f27SJin Yao        "EventName": "BR_INST_RETIRED.NOT_TAKEN",
862b5ff7f27SJin Yao        "PublicDescription": "This event counts not taken branch instructions retired.",
863b5ff7f27SJin Yao        "SampleAfterValue": "400009",
864b5ff7f27SJin Yao        "UMask": "0x10"
865b5ff7f27SJin Yao    },
866b5ff7f27SJin Yao    {
867b5ff7f27SJin Yao        "BriefDescription": "Conditional branch instructions retired.",
868b5ff7f27SJin Yao        "Counter": "0,1,2,3",
869b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
870b5ff7f27SJin Yao        "Errata": "SKL091",
871b5ff7f27SJin Yao        "EventCode": "0xC4",
872b5ff7f27SJin Yao        "EventName": "BR_INST_RETIRED.CONDITIONAL",
873b5ff7f27SJin Yao        "PEBS": "1",
874b5ff7f27SJin Yao        "PublicDescription": "This event counts conditional branch instructions retired.",
875b5ff7f27SJin Yao        "SampleAfterValue": "400009",
876b5ff7f27SJin Yao        "UMask": "0x1"
877b5ff7f27SJin Yao    },
878b5ff7f27SJin Yao    {
879b5ff7f27SJin Yao        "BriefDescription": "Mispredicted conditional branch instructions retired.",
880b5ff7f27SJin Yao        "Counter": "0,1,2,3",
881b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
882b5ff7f27SJin Yao        "EventCode": "0xC5",
883b5ff7f27SJin Yao        "EventName": "BR_MISP_RETIRED.CONDITIONAL",
884b5ff7f27SJin Yao        "PEBS": "1",
885b5ff7f27SJin Yao        "PublicDescription": "This event counts mispredicted conditional branch instructions retired.",
886b5ff7f27SJin Yao        "SampleAfterValue": "400009",
887b5ff7f27SJin Yao        "UMask": "0x1"
888b5ff7f27SJin Yao    },
889b5ff7f27SJin Yao    {
890b5ff7f27SJin Yao        "BriefDescription": "Number of uops executed on the core.",
891b5ff7f27SJin Yao        "Counter": "0,1,2,3",
892b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
893b5ff7f27SJin Yao        "EventCode": "0xB1",
894b5ff7f27SJin Yao        "EventName": "UOPS_EXECUTED.CORE",
895b5ff7f27SJin Yao        "PublicDescription": "Number of uops executed from any thread.",
896b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
897b5ff7f27SJin Yao        "UMask": "0x2"
898b5ff7f27SJin Yao    },
899b5ff7f27SJin Yao    {
900b5ff7f27SJin Yao        "BriefDescription": "Execution stalls while L1 cache miss demand load is outstanding.",
901b5ff7f27SJin Yao        "Counter": "0,1,2,3",
902b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
903b5ff7f27SJin Yao        "CounterMask": "12",
904b5ff7f27SJin Yao        "EventCode": "0xA3",
905b5ff7f27SJin Yao        "EventName": "CYCLE_ACTIVITY.STALLS_L1D_MISS",
906b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
907b5ff7f27SJin Yao        "UMask": "0xc"
908b5ff7f27SJin Yao    },
909b5ff7f27SJin Yao    {
910b5ff7f27SJin Yao        "BriefDescription": "Cycles total of 2 uops are executed on all ports and Reservation Station was not empty.",
911b5ff7f27SJin Yao        "Counter": "0,1,2,3",
912b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
913b5ff7f27SJin Yao        "EventCode": "0xA6",
914b5ff7f27SJin Yao        "EventName": "EXE_ACTIVITY.2_PORTS_UTIL",
915b5ff7f27SJin Yao        "PublicDescription": "Counts cycles during which a total of 2 uops were executed on all ports and Reservation Station (RS) was not empty.",
916b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
917b5ff7f27SJin Yao        "UMask": "0x4"
918b5ff7f27SJin Yao    },
919b5ff7f27SJin Yao    {
920b5ff7f27SJin Yao        "BriefDescription": "Cycles the issue-stage is waiting for front-end to fetch from resteered path following branch misprediction or machine clear events.",
921b5ff7f27SJin Yao        "Counter": "0,1,2,3",
922b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
923b5ff7f27SJin Yao        "EventCode": "0x0D",
924b5ff7f27SJin Yao        "EventName": "INT_MISC.CLEAR_RESTEER_CYCLES",
925b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
926b5ff7f27SJin Yao        "UMask": "0x80"
927b5ff7f27SJin Yao    },
928b5ff7f27SJin Yao    {
929b5ff7f27SJin Yao        "BriefDescription": "All (macro) branch instructions retired.",
930b5ff7f27SJin Yao        "Counter": "0,1,2,3",
931b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
932b5ff7f27SJin Yao        "Errata": "SKL091",
933b5ff7f27SJin Yao        "EventCode": "0xC4",
934b5ff7f27SJin Yao        "EventName": "BR_INST_RETIRED.ALL_BRANCHES",
935b5ff7f27SJin Yao        "PublicDescription": "Counts all (macro) branch instructions retired.",
936b5ff7f27SJin Yao        "SampleAfterValue": "400009"
937b5ff7f27SJin Yao    },
938b5ff7f27SJin Yao    {
939b5ff7f27SJin Yao        "BriefDescription": "Cycles where at least 1 uop was executed per-thread",
940b5ff7f27SJin Yao        "Counter": "0,1,2,3",
941b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
942b5ff7f27SJin Yao        "CounterMask": "1",
943b5ff7f27SJin Yao        "EventCode": "0xB1",
944b5ff7f27SJin Yao        "EventName": "UOPS_EXECUTED.CYCLES_GE_1_UOP_EXEC",
945b5ff7f27SJin Yao        "PublicDescription": "Cycles where at least 1 uop was executed per-thread.",
946b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
947b5ff7f27SJin Yao        "UMask": "0x1"
948b5ff7f27SJin Yao    },
949b5ff7f27SJin Yao    {
950b5ff7f27SJin Yao        "BriefDescription": "Cycles while L2 cache miss demand load is outstanding.",
951b5ff7f27SJin Yao        "Counter": "0,1,2,3",
952b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
953b5ff7f27SJin Yao        "CounterMask": "1",
954b5ff7f27SJin Yao        "EventCode": "0xA3",
955b5ff7f27SJin Yao        "EventName": "CYCLE_ACTIVITY.CYCLES_L2_MISS",
956b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
957b5ff7f27SJin Yao        "UMask": "0x1"
958630171d4SAndi Kleen    }
959630171d4SAndi Kleen]