1630171d4SAndi Kleen[
2630171d4SAndi Kleen    {
3b5ff7f27SJin Yao        "BriefDescription": "Cycles when divide unit is busy executing divide or square root operations. Accounts for integer and floating-point operations.",
4630171d4SAndi Kleen        "Counter": "0,1,2,3",
5b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
619f2d40cSAndi Kleen        "CounterMask": "1",
7b5ff7f27SJin Yao        "EventCode": "0x14",
8b5ff7f27SJin Yao        "EventName": "ARITH.DIVIDER_ACTIVE",
919f2d40cSAndi Kleen        "SampleAfterValue": "2000003",
10b5ff7f27SJin Yao        "UMask": "0x1"
1119f2d40cSAndi Kleen    },
1219f2d40cSAndi Kleen    {
13*2c72404eSJin Yao        "BriefDescription": "All (macro) branch instructions retired.",
14630171d4SAndi Kleen        "Counter": "0,1,2,3",
15b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
16*2c72404eSJin Yao        "Errata": "SKL091",
17*2c72404eSJin Yao        "EventCode": "0xC4",
18*2c72404eSJin Yao        "EventName": "BR_INST_RETIRED.ALL_BRANCHES",
19*2c72404eSJin Yao        "PublicDescription": "Counts all (macro) branch instructions retired.",
20*2c72404eSJin Yao        "SampleAfterValue": "400009"
21*2c72404eSJin Yao    },
22*2c72404eSJin Yao    {
23*2c72404eSJin Yao        "BriefDescription": "All (macro) branch instructions retired.",
24*2c72404eSJin Yao        "Counter": "0,1,2,3",
25*2c72404eSJin Yao        "CounterHTOff": "0,1,2,3",
26*2c72404eSJin Yao        "Errata": "SKL091",
27*2c72404eSJin Yao        "EventCode": "0xC4",
28*2c72404eSJin Yao        "EventName": "BR_INST_RETIRED.ALL_BRANCHES_PEBS",
29*2c72404eSJin Yao        "PEBS": "2",
30*2c72404eSJin Yao        "PublicDescription": "This is a precise version of BR_INST_RETIRED.ALL_BRANCHES that counts all (macro) branch instructions retired.",
31*2c72404eSJin Yao        "SampleAfterValue": "400009",
32*2c72404eSJin Yao        "UMask": "0x4"
33*2c72404eSJin Yao    },
34*2c72404eSJin Yao    {
35*2c72404eSJin Yao        "BriefDescription": "Conditional branch instructions retired.",
36*2c72404eSJin Yao        "Counter": "0,1,2,3",
37*2c72404eSJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
38*2c72404eSJin Yao        "Errata": "SKL091",
39*2c72404eSJin Yao        "EventCode": "0xC4",
40*2c72404eSJin Yao        "EventName": "BR_INST_RETIRED.CONDITIONAL",
41*2c72404eSJin Yao        "PEBS": "1",
42*2c72404eSJin Yao        "PublicDescription": "This event counts conditional branch instructions retired.",
43*2c72404eSJin Yao        "SampleAfterValue": "400009",
44b5ff7f27SJin Yao        "UMask": "0x1"
4519f2d40cSAndi Kleen    },
4619f2d40cSAndi Kleen    {
47*2c72404eSJin Yao        "BriefDescription": "Not taken branch instructions retired.",
48*2c72404eSJin Yao        "Counter": "0,1,2,3",
49*2c72404eSJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
50*2c72404eSJin Yao        "Errata": "SKL091",
51*2c72404eSJin Yao        "EventCode": "0xc4",
52*2c72404eSJin Yao        "EventName": "BR_INST_RETIRED.COND_NTAKEN",
53*2c72404eSJin Yao        "PublicDescription": "This event counts not taken branch instructions retired.",
54*2c72404eSJin Yao        "SampleAfterValue": "400009",
55*2c72404eSJin Yao        "UMask": "0x10"
56*2c72404eSJin Yao    },
57*2c72404eSJin Yao    {
58b5ff7f27SJin Yao        "BriefDescription": "Far branch instructions retired.",
5919f2d40cSAndi Kleen        "Counter": "0,1,2,3",
60b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
61b5ff7f27SJin Yao        "Errata": "SKL091",
62b5ff7f27SJin Yao        "EventCode": "0xC4",
63b5ff7f27SJin Yao        "EventName": "BR_INST_RETIRED.FAR_BRANCH",
64b5ff7f27SJin Yao        "PEBS": "1",
65b5ff7f27SJin Yao        "PublicDescription": "This event counts far branch instructions retired.",
66b5ff7f27SJin Yao        "SampleAfterValue": "100007",
67b5ff7f27SJin Yao        "UMask": "0x40"
6819f2d40cSAndi Kleen    },
6919f2d40cSAndi Kleen    {
70*2c72404eSJin Yao        "BriefDescription": "Direct and indirect near call instructions retired.",
71630171d4SAndi Kleen        "Counter": "0,1,2,3",
72b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
73*2c72404eSJin Yao        "Errata": "SKL091",
74*2c72404eSJin Yao        "EventCode": "0xC4",
75*2c72404eSJin Yao        "EventName": "BR_INST_RETIRED.NEAR_CALL",
76*2c72404eSJin Yao        "PEBS": "1",
77*2c72404eSJin Yao        "PublicDescription": "This event counts both direct and indirect near call instructions retired.",
78*2c72404eSJin Yao        "SampleAfterValue": "100007",
79*2c72404eSJin Yao        "UMask": "0x2"
80*2c72404eSJin Yao    },
81*2c72404eSJin Yao    {
82*2c72404eSJin Yao        "BriefDescription": "Return instructions retired.",
83*2c72404eSJin Yao        "Counter": "0,1,2,3",
84*2c72404eSJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
85*2c72404eSJin Yao        "Errata": "SKL091",
86*2c72404eSJin Yao        "EventCode": "0xC4",
87*2c72404eSJin Yao        "EventName": "BR_INST_RETIRED.NEAR_RETURN",
88*2c72404eSJin Yao        "PEBS": "1",
89*2c72404eSJin Yao        "PublicDescription": "This event counts return instructions retired.",
90*2c72404eSJin Yao        "SampleAfterValue": "100007",
91*2c72404eSJin Yao        "UMask": "0x8"
92*2c72404eSJin Yao    },
93*2c72404eSJin Yao    {
94*2c72404eSJin Yao        "BriefDescription": "Taken branch instructions retired.",
95*2c72404eSJin Yao        "Counter": "0,1,2,3",
96*2c72404eSJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
97*2c72404eSJin Yao        "Errata": "SKL091",
98*2c72404eSJin Yao        "EventCode": "0xC4",
99*2c72404eSJin Yao        "EventName": "BR_INST_RETIRED.NEAR_TAKEN",
100*2c72404eSJin Yao        "PEBS": "1",
101*2c72404eSJin Yao        "PublicDescription": "This event counts taken branch instructions retired.",
102*2c72404eSJin Yao        "SampleAfterValue": "400009",
103*2c72404eSJin Yao        "UMask": "0x20"
104*2c72404eSJin Yao    },
105*2c72404eSJin Yao    {
106*2c72404eSJin Yao        "BriefDescription": "Not taken branch instructions retired.",
107*2c72404eSJin Yao        "Counter": "0,1,2,3",
108*2c72404eSJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
109*2c72404eSJin Yao        "Errata": "SKL091",
110*2c72404eSJin Yao        "EventCode": "0xC4",
111*2c72404eSJin Yao        "EventName": "BR_INST_RETIRED.NOT_TAKEN",
112*2c72404eSJin Yao        "PublicDescription": "This event counts not taken branch instructions retired.",
113*2c72404eSJin Yao        "SampleAfterValue": "400009",
114b5ff7f27SJin Yao        "UMask": "0x10"
115630171d4SAndi Kleen    },
116630171d4SAndi Kleen    {
117*2c72404eSJin Yao        "BriefDescription": "All mispredicted macro branch instructions retired.",
118630171d4SAndi Kleen        "Counter": "0,1,2,3",
119b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
120*2c72404eSJin Yao        "EventCode": "0xC5",
121*2c72404eSJin Yao        "EventName": "BR_MISP_RETIRED.ALL_BRANCHES",
122*2c72404eSJin 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.",
123*2c72404eSJin Yao        "SampleAfterValue": "400009"
124*2c72404eSJin Yao    },
125*2c72404eSJin Yao    {
126*2c72404eSJin Yao        "BriefDescription": "Mispredicted macro branch instructions retired.",
127*2c72404eSJin Yao        "Counter": "0,1,2,3",
128*2c72404eSJin Yao        "CounterHTOff": "0,1,2,3",
129*2c72404eSJin Yao        "EventCode": "0xC5",
130*2c72404eSJin Yao        "EventName": "BR_MISP_RETIRED.ALL_BRANCHES_PEBS",
131*2c72404eSJin Yao        "PEBS": "2",
132*2c72404eSJin Yao        "PublicDescription": "This is a precise version of BR_MISP_RETIRED.ALL_BRANCHES that counts all mispredicted macro branch instructions retired.",
133*2c72404eSJin Yao        "SampleAfterValue": "400009",
134*2c72404eSJin Yao        "UMask": "0x4"
135*2c72404eSJin Yao    },
136*2c72404eSJin Yao    {
137*2c72404eSJin Yao        "BriefDescription": "Mispredicted conditional branch instructions retired.",
138*2c72404eSJin Yao        "Counter": "0,1,2,3",
139*2c72404eSJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
140*2c72404eSJin Yao        "EventCode": "0xC5",
141*2c72404eSJin Yao        "EventName": "BR_MISP_RETIRED.CONDITIONAL",
142*2c72404eSJin Yao        "PEBS": "1",
143*2c72404eSJin Yao        "PublicDescription": "This event counts mispredicted conditional branch instructions retired.",
144*2c72404eSJin Yao        "SampleAfterValue": "400009",
145b5ff7f27SJin Yao        "UMask": "0x1"
146630171d4SAndi Kleen    },
147630171d4SAndi Kleen    {
148b5ff7f27SJin Yao        "BriefDescription": "Mispredicted direct and indirect near call instructions retired.",
149b5ff7f27SJin Yao        "Counter": "0,1,2,3",
150b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
151b5ff7f27SJin Yao        "EventCode": "0xC5",
152b5ff7f27SJin Yao        "EventName": "BR_MISP_RETIRED.NEAR_CALL",
153b5ff7f27SJin Yao        "PEBS": "1",
154b5ff7f27SJin Yao        "PublicDescription": "Counts both taken and not taken retired mispredicted direct and indirect near calls, including both register and memory indirect.",
155b5ff7f27SJin Yao        "SampleAfterValue": "400009",
156b5ff7f27SJin Yao        "UMask": "0x2"
157b5ff7f27SJin Yao    },
158b5ff7f27SJin Yao    {
159*2c72404eSJin Yao        "BriefDescription": "Number of near branch instructions retired that were mispredicted and taken.",
160b5ff7f27SJin Yao        "Counter": "0,1,2,3",
161b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
162*2c72404eSJin Yao        "EventCode": "0xC5",
163*2c72404eSJin Yao        "EventName": "BR_MISP_RETIRED.NEAR_TAKEN",
164*2c72404eSJin Yao        "PEBS": "1",
165*2c72404eSJin Yao        "SampleAfterValue": "400009",
166b5ff7f27SJin Yao        "UMask": "0x20"
167b5ff7f27SJin Yao    },
168b5ff7f27SJin Yao    {
169*2c72404eSJin Yao        "BriefDescription": "Core crystal clock cycles when this thread is unhalted and the other thread is halted.",
170630171d4SAndi Kleen        "Counter": "0,1,2,3",
171b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
172*2c72404eSJin Yao        "EventCode": "0x3C",
173*2c72404eSJin Yao        "EventName": "CPU_CLK_THREAD_UNHALTED.ONE_THREAD_ACTIVE",
174*2c72404eSJin Yao        "SampleAfterValue": "25003",
175*2c72404eSJin Yao        "UMask": "0x2"
176*2c72404eSJin Yao    },
177*2c72404eSJin Yao    {
178*2c72404eSJin Yao        "BriefDescription": "Core crystal clock cycles when the thread is unhalted.",
179*2c72404eSJin Yao        "Counter": "0,1,2,3",
180*2c72404eSJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
181*2c72404eSJin Yao        "EventCode": "0x3C",
182*2c72404eSJin Yao        "EventName": "CPU_CLK_THREAD_UNHALTED.REF_XCLK",
183*2c72404eSJin Yao        "SampleAfterValue": "25003",
184*2c72404eSJin Yao        "UMask": "0x1"
185*2c72404eSJin Yao    },
186*2c72404eSJin Yao    {
187*2c72404eSJin Yao        "AnyThread": "1",
188*2c72404eSJin Yao        "BriefDescription": "Core crystal clock cycles when at least one thread on the physical core is unhalted.",
189*2c72404eSJin Yao        "Counter": "0,1,2,3",
190*2c72404eSJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
191*2c72404eSJin Yao        "EventCode": "0x3C",
192*2c72404eSJin Yao        "EventName": "CPU_CLK_THREAD_UNHALTED.REF_XCLK_ANY",
193*2c72404eSJin Yao        "SampleAfterValue": "25003",
194*2c72404eSJin Yao        "UMask": "0x1"
195*2c72404eSJin Yao    },
196*2c72404eSJin Yao    {
197*2c72404eSJin Yao        "BriefDescription": "Core crystal clock cycles when this thread is unhalted and the other thread is halted.",
198*2c72404eSJin Yao        "Counter": "0,1,2,3",
199*2c72404eSJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
200*2c72404eSJin Yao        "EventCode": "0x3C",
201*2c72404eSJin Yao        "EventName": "CPU_CLK_UNHALTED.ONE_THREAD_ACTIVE",
202*2c72404eSJin Yao        "SampleAfterValue": "25003",
203*2c72404eSJin Yao        "UMask": "0x2"
204*2c72404eSJin Yao    },
205*2c72404eSJin Yao    {
206*2c72404eSJin Yao        "BriefDescription": "Reference cycles when the core is not in halt state.",
207*2c72404eSJin Yao        "Counter": "Fixed counter 2",
208*2c72404eSJin Yao        "CounterHTOff": "Fixed counter 2",
209*2c72404eSJin Yao        "EventName": "CPU_CLK_UNHALTED.REF_TSC",
210*2c72404eSJin 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.",
211*2c72404eSJin Yao        "SampleAfterValue": "2000003",
212*2c72404eSJin Yao        "UMask": "0x3"
213*2c72404eSJin Yao    },
214*2c72404eSJin Yao    {
215*2c72404eSJin Yao        "BriefDescription": "Core crystal clock cycles when the thread is unhalted.",
216*2c72404eSJin Yao        "Counter": "0,1,2,3",
217*2c72404eSJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
218*2c72404eSJin Yao        "EventCode": "0x3C",
219*2c72404eSJin Yao        "EventName": "CPU_CLK_UNHALTED.REF_XCLK",
220*2c72404eSJin Yao        "SampleAfterValue": "25003",
221*2c72404eSJin Yao        "UMask": "0x1"
222*2c72404eSJin Yao    },
223*2c72404eSJin Yao    {
224*2c72404eSJin Yao        "AnyThread": "1",
225*2c72404eSJin Yao        "BriefDescription": "Core crystal clock cycles when at least one thread on the physical core is unhalted.",
226*2c72404eSJin Yao        "Counter": "0,1,2,3",
227*2c72404eSJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
228*2c72404eSJin Yao        "EventCode": "0x3C",
229*2c72404eSJin Yao        "EventName": "CPU_CLK_UNHALTED.REF_XCLK_ANY",
230*2c72404eSJin Yao        "SampleAfterValue": "25003",
231*2c72404eSJin Yao        "UMask": "0x1"
232*2c72404eSJin Yao    },
233*2c72404eSJin Yao    {
234*2c72404eSJin Yao        "BriefDescription": "Counts when there is a transition from ring 1, 2 or 3 to ring 0.",
235*2c72404eSJin Yao        "Counter": "0,1,2,3",
236*2c72404eSJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
237*2c72404eSJin Yao        "CounterMask": "1",
238*2c72404eSJin Yao        "EdgeDetect": "1",
239*2c72404eSJin Yao        "EventCode": "0x3C",
240*2c72404eSJin Yao        "EventName": "CPU_CLK_UNHALTED.RING0_TRANS",
241*2c72404eSJin Yao        "PublicDescription": "Counts when the Current Privilege Level (CPL) transitions from ring 1, 2 or 3 to ring 0 (Kernel).",
242*2c72404eSJin Yao        "SampleAfterValue": "100007"
243*2c72404eSJin Yao    },
244*2c72404eSJin Yao    {
245*2c72404eSJin Yao        "BriefDescription": "Core cycles when the thread is not in halt state",
246*2c72404eSJin Yao        "Counter": "Fixed counter 1",
247*2c72404eSJin Yao        "CounterHTOff": "Fixed counter 1",
248*2c72404eSJin Yao        "EventName": "CPU_CLK_UNHALTED.THREAD",
249*2c72404eSJin 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.",
250*2c72404eSJin Yao        "SampleAfterValue": "2000003",
251*2c72404eSJin Yao        "UMask": "0x2"
252*2c72404eSJin Yao    },
253*2c72404eSJin Yao    {
254*2c72404eSJin Yao        "AnyThread": "1",
255*2c72404eSJin Yao        "BriefDescription": "Core cycles when at least one thread on the physical core is not in halt state.",
256*2c72404eSJin Yao        "Counter": "Fixed counter 1",
257*2c72404eSJin Yao        "CounterHTOff": "Fixed counter 1",
258*2c72404eSJin Yao        "EventName": "CPU_CLK_UNHALTED.THREAD_ANY",
259630171d4SAndi Kleen        "SampleAfterValue": "2000003",
260b5ff7f27SJin Yao        "UMask": "0x2"
261630171d4SAndi Kleen    },
262630171d4SAndi Kleen    {
263b5ff7f27SJin Yao        "BriefDescription": "Thread cycles when thread is not in halt state",
26419f2d40cSAndi Kleen        "Counter": "0,1,2,3",
265b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
266b5ff7f27SJin Yao        "EventCode": "0x3C",
267b5ff7f27SJin Yao        "EventName": "CPU_CLK_UNHALTED.THREAD_P",
268b5ff7f27SJin 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.",
269b5ff7f27SJin Yao        "SampleAfterValue": "2000003"
27019f2d40cSAndi Kleen    },
27119f2d40cSAndi Kleen    {
272*2c72404eSJin Yao        "AnyThread": "1",
273*2c72404eSJin Yao        "BriefDescription": "Core cycles when at least one thread on the physical core is not in halt state.",
27419f2d40cSAndi Kleen        "Counter": "0,1,2,3",
275b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
276*2c72404eSJin Yao        "EventCode": "0x3C",
277*2c72404eSJin Yao        "EventName": "CPU_CLK_UNHALTED.THREAD_P_ANY",
278*2c72404eSJin Yao        "SampleAfterValue": "2000003"
279*2c72404eSJin Yao    },
280*2c72404eSJin Yao    {
281*2c72404eSJin Yao        "BriefDescription": "Cycles while L1 cache miss demand load is outstanding.",
282*2c72404eSJin Yao        "Counter": "0,1,2,3",
283*2c72404eSJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
284*2c72404eSJin Yao        "CounterMask": "8",
285*2c72404eSJin Yao        "EventCode": "0xA3",
286*2c72404eSJin Yao        "EventName": "CYCLE_ACTIVITY.CYCLES_L1D_MISS",
287*2c72404eSJin Yao        "SampleAfterValue": "2000003",
288*2c72404eSJin Yao        "UMask": "0x8"
289*2c72404eSJin Yao    },
290*2c72404eSJin Yao    {
291*2c72404eSJin Yao        "BriefDescription": "Cycles while L2 cache miss demand load is outstanding.",
292*2c72404eSJin Yao        "Counter": "0,1,2,3",
293*2c72404eSJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
294*2c72404eSJin Yao        "CounterMask": "1",
295*2c72404eSJin Yao        "EventCode": "0xA3",
296*2c72404eSJin Yao        "EventName": "CYCLE_ACTIVITY.CYCLES_L2_MISS",
29719f2d40cSAndi Kleen        "SampleAfterValue": "2000003",
298b5ff7f27SJin Yao        "UMask": "0x1"
29919f2d40cSAndi Kleen    },
30019f2d40cSAndi Kleen    {
301*2c72404eSJin Yao        "BriefDescription": "Cycles while memory subsystem has an outstanding load.",
302b5ff7f27SJin Yao        "Counter": "0,1,2,3",
303b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
304*2c72404eSJin Yao        "CounterMask": "16",
305*2c72404eSJin Yao        "EventCode": "0xA3",
306*2c72404eSJin Yao        "EventName": "CYCLE_ACTIVITY.CYCLES_MEM_ANY",
307*2c72404eSJin Yao        "SampleAfterValue": "2000003",
308*2c72404eSJin Yao        "UMask": "0x10"
309*2c72404eSJin Yao    },
310*2c72404eSJin Yao    {
311*2c72404eSJin Yao        "BriefDescription": "Execution stalls while L1 cache miss demand load is outstanding.",
312*2c72404eSJin Yao        "Counter": "0,1,2,3",
313*2c72404eSJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
314*2c72404eSJin Yao        "CounterMask": "12",
315*2c72404eSJin Yao        "EventCode": "0xA3",
316*2c72404eSJin Yao        "EventName": "CYCLE_ACTIVITY.STALLS_L1D_MISS",
317*2c72404eSJin Yao        "SampleAfterValue": "2000003",
318*2c72404eSJin Yao        "UMask": "0xc"
319*2c72404eSJin Yao    },
320*2c72404eSJin Yao    {
321*2c72404eSJin Yao        "BriefDescription": "Execution stalls while L2 cache miss demand load is outstanding.",
322*2c72404eSJin Yao        "Counter": "0,1,2,3",
323*2c72404eSJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
324*2c72404eSJin Yao        "CounterMask": "5",
325*2c72404eSJin Yao        "EventCode": "0xA3",
326*2c72404eSJin Yao        "EventName": "CYCLE_ACTIVITY.STALLS_L2_MISS",
327*2c72404eSJin Yao        "SampleAfterValue": "2000003",
328*2c72404eSJin Yao        "UMask": "0x5"
329*2c72404eSJin Yao    },
330*2c72404eSJin Yao    {
331*2c72404eSJin Yao        "BriefDescription": "Execution stalls while memory subsystem has an outstanding load.",
332*2c72404eSJin Yao        "Counter": "0,1,2,3",
333*2c72404eSJin Yao        "CounterHTOff": "0,1,2,3",
334*2c72404eSJin Yao        "CounterMask": "20",
335*2c72404eSJin Yao        "EventCode": "0xA3",
336*2c72404eSJin Yao        "EventName": "CYCLE_ACTIVITY.STALLS_MEM_ANY",
337*2c72404eSJin Yao        "SampleAfterValue": "2000003",
338*2c72404eSJin Yao        "UMask": "0x14"
339*2c72404eSJin Yao    },
340*2c72404eSJin Yao    {
341*2c72404eSJin Yao        "BriefDescription": "Total execution stalls.",
342*2c72404eSJin Yao        "Counter": "0,1,2,3",
343*2c72404eSJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
344*2c72404eSJin Yao        "CounterMask": "4",
345*2c72404eSJin Yao        "EventCode": "0xA3",
346*2c72404eSJin Yao        "EventName": "CYCLE_ACTIVITY.STALLS_TOTAL",
347*2c72404eSJin Yao        "SampleAfterValue": "2000003",
348*2c72404eSJin Yao        "UMask": "0x4"
349*2c72404eSJin Yao    },
350*2c72404eSJin Yao    {
351*2c72404eSJin Yao        "BriefDescription": "Cycles total of 1 uop is executed on all ports and Reservation Station was not empty.",
352*2c72404eSJin Yao        "Counter": "0,1,2,3",
353*2c72404eSJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
354*2c72404eSJin Yao        "EventCode": "0xA6",
355*2c72404eSJin Yao        "EventName": "EXE_ACTIVITY.1_PORTS_UTIL",
356*2c72404eSJin Yao        "PublicDescription": "Counts cycles during which a total of 1 uop was executed on all ports and Reservation Station (RS) was not empty.",
357*2c72404eSJin Yao        "SampleAfterValue": "2000003",
358*2c72404eSJin Yao        "UMask": "0x2"
359*2c72404eSJin Yao    },
360*2c72404eSJin Yao    {
361*2c72404eSJin Yao        "BriefDescription": "Cycles total of 2 uops are executed on all ports and Reservation Station was not empty.",
362*2c72404eSJin Yao        "Counter": "0,1,2,3",
363*2c72404eSJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
364*2c72404eSJin Yao        "EventCode": "0xA6",
365*2c72404eSJin Yao        "EventName": "EXE_ACTIVITY.2_PORTS_UTIL",
366*2c72404eSJin Yao        "PublicDescription": "Counts cycles during which a total of 2 uops were executed on all ports and Reservation Station (RS) was not empty.",
367*2c72404eSJin Yao        "SampleAfterValue": "2000003",
368*2c72404eSJin Yao        "UMask": "0x4"
369*2c72404eSJin Yao    },
370*2c72404eSJin Yao    {
371*2c72404eSJin Yao        "BriefDescription": "Cycles total of 3 uops are executed on all ports and Reservation Station was not empty.",
372*2c72404eSJin Yao        "Counter": "0,1,2,3",
373*2c72404eSJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
374*2c72404eSJin Yao        "EventCode": "0xA6",
375*2c72404eSJin Yao        "EventName": "EXE_ACTIVITY.3_PORTS_UTIL",
376*2c72404eSJin Yao        "PublicDescription": "Cycles total of 3 uops are executed on all ports and Reservation Station (RS) was not empty.",
377*2c72404eSJin Yao        "SampleAfterValue": "2000003",
378*2c72404eSJin Yao        "UMask": "0x8"
379*2c72404eSJin Yao    },
380*2c72404eSJin Yao    {
381*2c72404eSJin Yao        "BriefDescription": "Cycles total of 4 uops are executed on all ports and Reservation Station was not empty.",
382*2c72404eSJin Yao        "Counter": "0,1,2,3",
383*2c72404eSJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
384*2c72404eSJin Yao        "EventCode": "0xA6",
385*2c72404eSJin Yao        "EventName": "EXE_ACTIVITY.4_PORTS_UTIL",
386*2c72404eSJin Yao        "PublicDescription": "Cycles total of 4 uops are executed on all ports and Reservation Station (RS) was not empty.",
387*2c72404eSJin Yao        "SampleAfterValue": "2000003",
388*2c72404eSJin Yao        "UMask": "0x10"
389*2c72404eSJin Yao    },
390*2c72404eSJin Yao    {
391*2c72404eSJin Yao        "BriefDescription": "Cycles where the Store Buffer was full and no outstanding load.",
392*2c72404eSJin Yao        "Counter": "0,1,2,3",
393*2c72404eSJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
394*2c72404eSJin Yao        "EventCode": "0xA6",
395*2c72404eSJin Yao        "EventName": "EXE_ACTIVITY.BOUND_ON_STORES",
396*2c72404eSJin Yao        "SampleAfterValue": "2000003",
397*2c72404eSJin Yao        "UMask": "0x40"
398*2c72404eSJin Yao    },
399*2c72404eSJin Yao    {
400*2c72404eSJin 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.",
401*2c72404eSJin Yao        "Counter": "0,1,2,3",
402*2c72404eSJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
403*2c72404eSJin Yao        "EventCode": "0xA6",
404*2c72404eSJin Yao        "EventName": "EXE_ACTIVITY.EXE_BOUND_0_PORTS",
405*2c72404eSJin Yao        "PublicDescription": "Counts cycles during which no uops were executed on all ports and Reservation Station (RS) was not empty.",
406*2c72404eSJin Yao        "SampleAfterValue": "2000003",
407*2c72404eSJin Yao        "UMask": "0x1"
408*2c72404eSJin Yao    },
409*2c72404eSJin Yao    {
410*2c72404eSJin Yao        "BriefDescription": "Stalls caused by changing prefix length of the instruction.",
411*2c72404eSJin Yao        "Counter": "0,1,2,3",
412*2c72404eSJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
413*2c72404eSJin Yao        "EventCode": "0x87",
414*2c72404eSJin Yao        "EventName": "ILD_STALL.LCP",
415*2c72404eSJin 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.",
416*2c72404eSJin Yao        "SampleAfterValue": "2000003",
417*2c72404eSJin Yao        "UMask": "0x1"
418*2c72404eSJin Yao    },
419*2c72404eSJin Yao    {
420*2c72404eSJin Yao        "BriefDescription": "Instructions retired from execution.",
421*2c72404eSJin Yao        "Counter": "Fixed counter 0",
422*2c72404eSJin Yao        "CounterHTOff": "Fixed counter 0",
423*2c72404eSJin Yao        "EventName": "INST_RETIRED.ANY",
424*2c72404eSJin 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.",
425*2c72404eSJin Yao        "SampleAfterValue": "2000003",
426*2c72404eSJin Yao        "UMask": "0x1"
427*2c72404eSJin Yao    },
428*2c72404eSJin Yao    {
429*2c72404eSJin Yao        "BriefDescription": "Number of instructions retired. General Counter - architectural event",
430*2c72404eSJin Yao        "Counter": "0,1,2,3",
431*2c72404eSJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
432*2c72404eSJin Yao        "Errata": "SKL091, SKL044",
433*2c72404eSJin Yao        "EventCode": "0xC0",
434*2c72404eSJin Yao        "EventName": "INST_RETIRED.ANY_P",
435*2c72404eSJin Yao        "PublicDescription": "Counts the number of instructions (EOMs) retired. Counting covers macro-fused instructions individually (that is, increments by two).",
436*2c72404eSJin Yao        "SampleAfterValue": "2000003"
437*2c72404eSJin Yao    },
438*2c72404eSJin Yao    {
439*2c72404eSJin Yao        "BriefDescription": "Precise instruction retired event with HW to reduce effect of PEBS shadow in IP distribution",
440*2c72404eSJin Yao        "Counter": "1",
441*2c72404eSJin Yao        "CounterHTOff": "1",
442*2c72404eSJin Yao        "Errata": "SKL091, SKL044",
443*2c72404eSJin Yao        "EventCode": "0xC0",
444*2c72404eSJin Yao        "EventName": "INST_RETIRED.PREC_DIST",
445*2c72404eSJin Yao        "PEBS": "2",
446*2c72404eSJin 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.",
447*2c72404eSJin Yao        "SampleAfterValue": "2000003",
448*2c72404eSJin Yao        "UMask": "0x1"
449*2c72404eSJin Yao    },
450*2c72404eSJin Yao    {
451*2c72404eSJin Yao        "BriefDescription": "Number of cycles using always true condition applied to  PEBS instructions retired event.",
452*2c72404eSJin Yao        "Counter": "0,2,3",
453*2c72404eSJin Yao        "CounterHTOff": "0,2,3",
454*2c72404eSJin Yao        "CounterMask": "10",
455*2c72404eSJin Yao        "Errata": "SKL091, SKL044",
456*2c72404eSJin Yao        "EventCode": "0xC0",
457*2c72404eSJin Yao        "EventName": "INST_RETIRED.TOTAL_CYCLES_PS",
458*2c72404eSJin Yao        "Invert": "1",
459*2c72404eSJin Yao        "PEBS": "2",
460*2c72404eSJin Yao        "PublicDescription": "Number of cycles using an always true condition applied to  PEBS instructions retired event. (inst_ret< 16)",
461*2c72404eSJin Yao        "SampleAfterValue": "2000003",
462*2c72404eSJin Yao        "UMask": "0x1"
463*2c72404eSJin Yao    },
464*2c72404eSJin Yao    {
465*2c72404eSJin Yao        "BriefDescription": "Cycles the issue-stage is waiting for front-end to fetch from resteered path following branch misprediction or machine clear events.",
466*2c72404eSJin Yao        "Counter": "0,1,2,3",
467*2c72404eSJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
468*2c72404eSJin Yao        "EventCode": "0x0D",
469*2c72404eSJin Yao        "EventName": "INT_MISC.CLEAR_RESTEER_CYCLES",
470*2c72404eSJin Yao        "SampleAfterValue": "2000003",
471*2c72404eSJin Yao        "UMask": "0x80"
472*2c72404eSJin Yao    },
473*2c72404eSJin Yao    {
474*2c72404eSJin Yao        "BriefDescription": "Core cycles the allocator was stalled due to recovery from earlier clear event for this thread (e.g. misprediction or memory nuke)",
475*2c72404eSJin Yao        "Counter": "0,1,2,3",
476*2c72404eSJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
477*2c72404eSJin Yao        "EventCode": "0x0D",
478*2c72404eSJin Yao        "EventName": "INT_MISC.RECOVERY_CYCLES",
479*2c72404eSJin Yao        "PublicDescription": "Core cycles the Resource allocator was stalled due to recovery from an earlier branch misprediction or machine clear event.",
480*2c72404eSJin Yao        "SampleAfterValue": "2000003",
481*2c72404eSJin Yao        "UMask": "0x1"
482*2c72404eSJin Yao    },
483*2c72404eSJin Yao    {
484*2c72404eSJin Yao        "AnyThread": "1",
485*2c72404eSJin 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).",
486*2c72404eSJin Yao        "Counter": "0,1,2,3",
487*2c72404eSJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
488*2c72404eSJin Yao        "EventCode": "0x0D",
489*2c72404eSJin Yao        "EventName": "INT_MISC.RECOVERY_CYCLES_ANY",
490*2c72404eSJin Yao        "SampleAfterValue": "2000003",
491*2c72404eSJin Yao        "UMask": "0x1"
492*2c72404eSJin Yao    },
493*2c72404eSJin Yao    {
494*2c72404eSJin Yao        "BriefDescription": "The number of times that split load operations are temporarily blocked because all resources for handling the split accesses are in use",
495*2c72404eSJin Yao        "Counter": "0,1,2,3",
496*2c72404eSJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
497*2c72404eSJin Yao        "EventCode": "0x03",
498*2c72404eSJin Yao        "EventName": "LD_BLOCKS.NO_SR",
499*2c72404eSJin Yao        "PublicDescription": "The number of times that split load operations are temporarily blocked because all resources for handling the split accesses are in use.",
500*2c72404eSJin Yao        "SampleAfterValue": "100003",
501*2c72404eSJin Yao        "UMask": "0x8"
502*2c72404eSJin Yao    },
503*2c72404eSJin Yao    {
504*2c72404eSJin Yao        "BriefDescription": "Loads blocked due to overlapping with a preceding store that cannot be forwarded.",
505*2c72404eSJin Yao        "Counter": "0,1,2,3",
506*2c72404eSJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
507*2c72404eSJin Yao        "EventCode": "0x03",
508*2c72404eSJin Yao        "EventName": "LD_BLOCKS.STORE_FORWARD",
509*2c72404eSJin 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.",
510*2c72404eSJin Yao        "SampleAfterValue": "100003",
511*2c72404eSJin Yao        "UMask": "0x2"
512*2c72404eSJin Yao    },
513*2c72404eSJin Yao    {
514*2c72404eSJin Yao        "BriefDescription": "False dependencies in MOB due to partial compare on address.",
515*2c72404eSJin Yao        "Counter": "0,1,2,3",
516*2c72404eSJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
517*2c72404eSJin Yao        "EventCode": "0x07",
518*2c72404eSJin Yao        "EventName": "LD_BLOCKS_PARTIAL.ADDRESS_ALIAS",
519*2c72404eSJin 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.",
520*2c72404eSJin Yao        "SampleAfterValue": "100003",
521*2c72404eSJin Yao        "UMask": "0x1"
522*2c72404eSJin Yao    },
523*2c72404eSJin Yao    {
524*2c72404eSJin Yao        "BriefDescription": "Demand load dispatches that hit L1D fill buffer (FB) allocated for software prefetch.",
525*2c72404eSJin Yao        "Counter": "0,1,2,3",
526*2c72404eSJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
527*2c72404eSJin Yao        "EventCode": "0x4C",
528*2c72404eSJin Yao        "EventName": "LOAD_HIT_PRE.SW_PF",
529*2c72404eSJin 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.",
530*2c72404eSJin Yao        "SampleAfterValue": "100003",
531*2c72404eSJin Yao        "UMask": "0x1"
532*2c72404eSJin Yao    },
533*2c72404eSJin Yao    {
534*2c72404eSJin Yao        "BriefDescription": "Cycles 4 Uops delivered by the LSD, but didn't come from the decoder.",
535*2c72404eSJin Yao        "Counter": "0,1,2,3",
536*2c72404eSJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
537*2c72404eSJin Yao        "CounterMask": "4",
538*2c72404eSJin Yao        "EventCode": "0xA8",
539*2c72404eSJin Yao        "EventName": "LSD.CYCLES_4_UOPS",
540*2c72404eSJin Yao        "PublicDescription": "Counts the cycles when 4 uops are delivered by the LSD (Loop-stream detector).",
541*2c72404eSJin Yao        "SampleAfterValue": "2000003",
542*2c72404eSJin Yao        "UMask": "0x1"
543*2c72404eSJin Yao    },
544*2c72404eSJin Yao    {
545*2c72404eSJin Yao        "BriefDescription": "Cycles Uops delivered by the LSD, but didn't come from the decoder.",
546*2c72404eSJin Yao        "Counter": "0,1,2,3",
547*2c72404eSJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
548*2c72404eSJin Yao        "CounterMask": "1",
549*2c72404eSJin Yao        "EventCode": "0xA8",
550*2c72404eSJin Yao        "EventName": "LSD.CYCLES_ACTIVE",
551*2c72404eSJin Yao        "PublicDescription": "Counts the cycles when at least one uop is delivered by the LSD (Loop-stream detector).",
552*2c72404eSJin Yao        "SampleAfterValue": "2000003",
553*2c72404eSJin Yao        "UMask": "0x1"
554*2c72404eSJin Yao    },
555*2c72404eSJin Yao    {
556*2c72404eSJin Yao        "BriefDescription": "Number of Uops delivered by the LSD.",
557*2c72404eSJin Yao        "Counter": "0,1,2,3",
558*2c72404eSJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
559*2c72404eSJin Yao        "EventCode": "0xA8",
560*2c72404eSJin Yao        "EventName": "LSD.UOPS",
561*2c72404eSJin Yao        "PublicDescription": "Number of uops delivered to the back-end by the LSD(Loop Stream Detector).",
562*2c72404eSJin Yao        "SampleAfterValue": "2000003",
563b5ff7f27SJin Yao        "UMask": "0x1"
564b5ff7f27SJin Yao    },
565b5ff7f27SJin Yao    {
566630171d4SAndi Kleen        "BriefDescription": "Number of machine clears (nukes) of any type.",
567630171d4SAndi Kleen        "Counter": "0,1,2,3",
568b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
569630171d4SAndi Kleen        "CounterMask": "1",
570b5ff7f27SJin Yao        "EdgeDetect": "1",
571b5ff7f27SJin Yao        "EventCode": "0xC3",
572b5ff7f27SJin Yao        "EventName": "MACHINE_CLEARS.COUNT",
573630171d4SAndi Kleen        "SampleAfterValue": "100003",
574b5ff7f27SJin Yao        "UMask": "0x1"
575630171d4SAndi Kleen    },
576630171d4SAndi Kleen    {
577*2c72404eSJin Yao        "BriefDescription": "Self-modifying code (SMC) detected.",
578b5ff7f27SJin Yao        "Counter": "0,1,2,3",
579b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
580*2c72404eSJin Yao        "EventCode": "0xC3",
581*2c72404eSJin Yao        "EventName": "MACHINE_CLEARS.SMC",
582*2c72404eSJin Yao        "PublicDescription": "Counts self-modifying code (SMC) detected, which causes a machine clear.",
583*2c72404eSJin Yao        "SampleAfterValue": "100003",
584*2c72404eSJin Yao        "UMask": "0x4"
585*2c72404eSJin Yao    },
586*2c72404eSJin Yao    {
587*2c72404eSJin 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.",
588*2c72404eSJin Yao        "Counter": "0,1,2,3",
589*2c72404eSJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
590*2c72404eSJin Yao        "EventCode": "0xC1",
591*2c72404eSJin Yao        "EventName": "OTHER_ASSISTS.ANY",
592*2c72404eSJin Yao        "SampleAfterValue": "100003",
593*2c72404eSJin Yao        "UMask": "0x3f"
594*2c72404eSJin Yao    },
595*2c72404eSJin Yao    {
596*2c72404eSJin Yao        "BriefDescription": "Cycles where the pipeline is stalled due to serializing operations.",
597*2c72404eSJin Yao        "Counter": "0,1,2,3",
598*2c72404eSJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
599*2c72404eSJin Yao        "EventCode": "0x59",
600*2c72404eSJin Yao        "EventName": "PARTIAL_RAT_STALLS.SCOREBOARD",
601*2c72404eSJin Yao        "PublicDescription": "This event counts cycles during which the microcode scoreboard stalls happen.",
602b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
603b5ff7f27SJin Yao        "UMask": "0x1"
604b5ff7f27SJin Yao    },
605b5ff7f27SJin Yao    {
606*2c72404eSJin Yao        "BriefDescription": "Resource-related stall cycles",
607b5ff7f27SJin Yao        "Counter": "0,1,2,3",
608b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
609*2c72404eSJin Yao        "EventCode": "0xa2",
610*2c72404eSJin Yao        "EventName": "RESOURCE_STALLS.ANY",
611*2c72404eSJin Yao        "PublicDescription": "Counts resource-related stall cycles.",
612b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
613b5ff7f27SJin Yao        "UMask": "0x1"
614b5ff7f27SJin Yao    },
615b5ff7f27SJin Yao    {
616*2c72404eSJin Yao        "BriefDescription": "Cycles stalled due to no store buffers available. (not including draining form sync).",
617b5ff7f27SJin Yao        "Counter": "0,1,2,3",
618b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
619*2c72404eSJin Yao        "EventCode": "0xA2",
620*2c72404eSJin Yao        "EventName": "RESOURCE_STALLS.SB",
621*2c72404eSJin 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.",
622b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
623b5ff7f27SJin Yao        "UMask": "0x8"
624b5ff7f27SJin Yao    },
625b5ff7f27SJin Yao    {
626*2c72404eSJin Yao        "BriefDescription": "Increments whenever there is an update to the LBR array.",
627*2c72404eSJin Yao        "Counter": "0,1,2,3",
628*2c72404eSJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
629*2c72404eSJin Yao        "EventCode": "0xCC",
630*2c72404eSJin Yao        "EventName": "ROB_MISC_EVENTS.LBR_INSERTS",
631*2c72404eSJin Yao        "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.",
632*2c72404eSJin Yao        "SampleAfterValue": "2000003",
633*2c72404eSJin Yao        "UMask": "0x20"
634*2c72404eSJin Yao    },
635*2c72404eSJin Yao    {
636*2c72404eSJin 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.",
637*2c72404eSJin Yao        "Counter": "0,1,2,3",
638*2c72404eSJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
639*2c72404eSJin Yao        "EventCode": "0xCC",
640*2c72404eSJin Yao        "EventName": "ROB_MISC_EVENTS.PAUSE_INST",
641*2c72404eSJin Yao        "SampleAfterValue": "2000003",
642*2c72404eSJin Yao        "UMask": "0x40"
643*2c72404eSJin Yao    },
644*2c72404eSJin Yao    {
645*2c72404eSJin Yao        "BriefDescription": "Cycles when Reservation Station (RS) is empty for the thread",
646*2c72404eSJin Yao        "Counter": "0,1,2,3",
647*2c72404eSJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
648*2c72404eSJin Yao        "EventCode": "0x5E",
649*2c72404eSJin Yao        "EventName": "RS_EVENTS.EMPTY_CYCLES",
650*2c72404eSJin 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.",
651*2c72404eSJin Yao        "SampleAfterValue": "2000003",
652*2c72404eSJin Yao        "UMask": "0x1"
653*2c72404eSJin Yao    },
654*2c72404eSJin Yao    {
655*2c72404eSJin Yao        "BriefDescription": "Counts end of periods where the Reservation Station (RS) was empty. Could be useful to precisely locate Frontend Latency Bound issues.",
656b5ff7f27SJin Yao        "Counter": "0,1,2,3",
657b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
658b5ff7f27SJin Yao        "CounterMask": "1",
659*2c72404eSJin Yao        "EdgeDetect": "1",
660*2c72404eSJin Yao        "EventCode": "0x5E",
661*2c72404eSJin Yao        "EventName": "RS_EVENTS.EMPTY_END",
662*2c72404eSJin Yao        "Invert": "1",
663*2c72404eSJin Yao        "PublicDescription": "Counts end of periods where the Reservation Station (RS) was empty. Could be useful to precisely locate front-end Latency Bound issues.",
664b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
665b5ff7f27SJin Yao        "UMask": "0x1"
666b5ff7f27SJin Yao    },
667b5ff7f27SJin Yao    {
668b5ff7f27SJin Yao        "BriefDescription": "Cycles per thread when uops are executed in port 0",
669b5ff7f27SJin Yao        "Counter": "0,1,2,3",
670b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
671b5ff7f27SJin Yao        "EventCode": "0xA1",
672b5ff7f27SJin Yao        "EventName": "UOPS_DISPATCHED_PORT.PORT_0",
673b5ff7f27SJin 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.",
674b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
675b5ff7f27SJin Yao        "UMask": "0x1"
676b5ff7f27SJin Yao    },
677b5ff7f27SJin Yao    {
678b5ff7f27SJin Yao        "BriefDescription": "Cycles per thread when uops are executed in port 1",
679b5ff7f27SJin Yao        "Counter": "0,1,2,3",
680b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
681b5ff7f27SJin Yao        "EventCode": "0xA1",
682b5ff7f27SJin Yao        "EventName": "UOPS_DISPATCHED_PORT.PORT_1",
683b5ff7f27SJin 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.",
684b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
685b5ff7f27SJin Yao        "UMask": "0x2"
686b5ff7f27SJin Yao    },
687b5ff7f27SJin Yao    {
688b5ff7f27SJin Yao        "BriefDescription": "Cycles per thread when uops are executed in port 2",
689b5ff7f27SJin Yao        "Counter": "0,1,2,3",
690b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
691b5ff7f27SJin Yao        "EventCode": "0xA1",
692b5ff7f27SJin Yao        "EventName": "UOPS_DISPATCHED_PORT.PORT_2",
693b5ff7f27SJin 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.",
694b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
695b5ff7f27SJin Yao        "UMask": "0x4"
696b5ff7f27SJin Yao    },
697b5ff7f27SJin Yao    {
698b5ff7f27SJin Yao        "BriefDescription": "Cycles per thread when uops are executed in port 3",
699b5ff7f27SJin Yao        "Counter": "0,1,2,3",
700b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
701b5ff7f27SJin Yao        "EventCode": "0xA1",
702b5ff7f27SJin Yao        "EventName": "UOPS_DISPATCHED_PORT.PORT_3",
703b5ff7f27SJin 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.",
704b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
705b5ff7f27SJin Yao        "UMask": "0x8"
706b5ff7f27SJin Yao    },
707b5ff7f27SJin Yao    {
708b5ff7f27SJin Yao        "BriefDescription": "Cycles per thread when uops are executed in port 4",
709b5ff7f27SJin Yao        "Counter": "0,1,2,3",
710b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
711b5ff7f27SJin Yao        "EventCode": "0xA1",
712b5ff7f27SJin Yao        "EventName": "UOPS_DISPATCHED_PORT.PORT_4",
713b5ff7f27SJin 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.",
714b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
715b5ff7f27SJin Yao        "UMask": "0x10"
716b5ff7f27SJin Yao    },
717b5ff7f27SJin Yao    {
718b5ff7f27SJin Yao        "BriefDescription": "Cycles per thread when uops are executed in port 5",
719b5ff7f27SJin Yao        "Counter": "0,1,2,3",
720b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
721b5ff7f27SJin Yao        "EventCode": "0xA1",
722b5ff7f27SJin Yao        "EventName": "UOPS_DISPATCHED_PORT.PORT_5",
723b5ff7f27SJin 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.",
724b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
725b5ff7f27SJin Yao        "UMask": "0x20"
726b5ff7f27SJin Yao    },
727b5ff7f27SJin Yao    {
728b5ff7f27SJin Yao        "BriefDescription": "Cycles per thread when uops are executed in port 6",
729b5ff7f27SJin Yao        "Counter": "0,1,2,3",
730b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
731b5ff7f27SJin Yao        "EventCode": "0xA1",
732b5ff7f27SJin Yao        "EventName": "UOPS_DISPATCHED_PORT.PORT_6",
733b5ff7f27SJin 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.",
734b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
735b5ff7f27SJin Yao        "UMask": "0x40"
736b5ff7f27SJin Yao    },
737b5ff7f27SJin Yao    {
738b5ff7f27SJin Yao        "BriefDescription": "Cycles per thread when uops are executed in port 7",
739b5ff7f27SJin Yao        "Counter": "0,1,2,3",
740b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
741b5ff7f27SJin Yao        "EventCode": "0xA1",
742b5ff7f27SJin Yao        "EventName": "UOPS_DISPATCHED_PORT.PORT_7",
743b5ff7f27SJin 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.",
744b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
745b5ff7f27SJin Yao        "UMask": "0x80"
746b5ff7f27SJin Yao    },
747b5ff7f27SJin Yao    {
748*2c72404eSJin Yao        "BriefDescription": "Number of uops executed on the core.",
749b5ff7f27SJin Yao        "Counter": "0,1,2,3",
750b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
751b5ff7f27SJin Yao        "EventCode": "0xB1",
752*2c72404eSJin Yao        "EventName": "UOPS_EXECUTED.CORE",
753*2c72404eSJin Yao        "PublicDescription": "Number of uops executed from any thread.",
754b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
755b5ff7f27SJin Yao        "UMask": "0x2"
756b5ff7f27SJin Yao    },
757b5ff7f27SJin Yao    {
758b5ff7f27SJin Yao        "BriefDescription": "Cycles at least 1 micro-op is executed from any thread on physical core.",
759b5ff7f27SJin Yao        "Counter": "0,1,2,3",
760b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
761b5ff7f27SJin Yao        "CounterMask": "1",
762b5ff7f27SJin Yao        "EventCode": "0xB1",
763b5ff7f27SJin Yao        "EventName": "UOPS_EXECUTED.CORE_CYCLES_GE_1",
764b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
765b5ff7f27SJin Yao        "UMask": "0x2"
766b5ff7f27SJin Yao    },
767b5ff7f27SJin Yao    {
768*2c72404eSJin Yao        "BriefDescription": "Cycles at least 2 micro-op is executed from any thread on physical core.",
769*2c72404eSJin Yao        "Counter": "0,1,2,3",
770*2c72404eSJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
771*2c72404eSJin Yao        "CounterMask": "2",
772*2c72404eSJin Yao        "EventCode": "0xB1",
773*2c72404eSJin Yao        "EventName": "UOPS_EXECUTED.CORE_CYCLES_GE_2",
774*2c72404eSJin Yao        "SampleAfterValue": "2000003",
775*2c72404eSJin Yao        "UMask": "0x2"
776*2c72404eSJin Yao    },
777*2c72404eSJin Yao    {
778*2c72404eSJin Yao        "BriefDescription": "Cycles at least 3 micro-op is executed from any thread on physical core.",
779*2c72404eSJin Yao        "Counter": "0,1,2,3",
780*2c72404eSJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
781*2c72404eSJin Yao        "CounterMask": "3",
782*2c72404eSJin Yao        "EventCode": "0xB1",
783*2c72404eSJin Yao        "EventName": "UOPS_EXECUTED.CORE_CYCLES_GE_3",
784*2c72404eSJin Yao        "SampleAfterValue": "2000003",
785*2c72404eSJin Yao        "UMask": "0x2"
786*2c72404eSJin Yao    },
787*2c72404eSJin Yao    {
788b5ff7f27SJin Yao        "BriefDescription": "Cycles at least 4 micro-op is executed from any thread on physical core.",
789b5ff7f27SJin Yao        "Counter": "0,1,2,3",
790b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
791b5ff7f27SJin Yao        "CounterMask": "4",
792b5ff7f27SJin Yao        "EventCode": "0xB1",
793b5ff7f27SJin Yao        "EventName": "UOPS_EXECUTED.CORE_CYCLES_GE_4",
794b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
795b5ff7f27SJin Yao        "UMask": "0x2"
796b5ff7f27SJin Yao    },
797b5ff7f27SJin Yao    {
798*2c72404eSJin Yao        "BriefDescription": "Cycles with no micro-ops executed from any thread on physical core.",
799*2c72404eSJin Yao        "Counter": "0,1,2,3",
800*2c72404eSJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
801*2c72404eSJin Yao        "CounterMask": "1",
802*2c72404eSJin Yao        "EventCode": "0xB1",
803*2c72404eSJin Yao        "EventName": "UOPS_EXECUTED.CORE_CYCLES_NONE",
804*2c72404eSJin Yao        "Invert": "1",
805b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
806*2c72404eSJin Yao        "UMask": "0x2"
807b5ff7f27SJin Yao    },
808b5ff7f27SJin Yao    {
809*2c72404eSJin Yao        "BriefDescription": "Cycles where at least 1 uop was executed per-thread",
810b5ff7f27SJin Yao        "Counter": "0,1,2,3",
811b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
812*2c72404eSJin Yao        "CounterMask": "1",
813*2c72404eSJin Yao        "EventCode": "0xB1",
814*2c72404eSJin Yao        "EventName": "UOPS_EXECUTED.CYCLES_GE_1_UOP_EXEC",
815*2c72404eSJin Yao        "PublicDescription": "Cycles where at least 1 uop was executed per-thread.",
816*2c72404eSJin Yao        "SampleAfterValue": "2000003",
817*2c72404eSJin Yao        "UMask": "0x1"
818b5ff7f27SJin Yao    },
819b5ff7f27SJin Yao    {
820*2c72404eSJin Yao        "BriefDescription": "Cycles where at least 2 uops were executed per-thread",
821b5ff7f27SJin Yao        "Counter": "0,1,2,3",
822b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
823*2c72404eSJin Yao        "CounterMask": "2",
824*2c72404eSJin Yao        "EventCode": "0xB1",
825*2c72404eSJin Yao        "EventName": "UOPS_EXECUTED.CYCLES_GE_2_UOPS_EXEC",
826*2c72404eSJin Yao        "PublicDescription": "Cycles where at least 2 uops were executed per-thread.",
827*2c72404eSJin Yao        "SampleAfterValue": "2000003",
828*2c72404eSJin Yao        "UMask": "0x1"
829*2c72404eSJin Yao    },
830*2c72404eSJin Yao    {
831*2c72404eSJin Yao        "BriefDescription": "Cycles where at least 3 uops were executed per-thread",
832*2c72404eSJin Yao        "Counter": "0,1,2,3",
833*2c72404eSJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
834*2c72404eSJin Yao        "CounterMask": "3",
835*2c72404eSJin Yao        "EventCode": "0xB1",
836*2c72404eSJin Yao        "EventName": "UOPS_EXECUTED.CYCLES_GE_3_UOPS_EXEC",
837*2c72404eSJin Yao        "PublicDescription": "Cycles where at least 3 uops were executed per-thread.",
838*2c72404eSJin Yao        "SampleAfterValue": "2000003",
839*2c72404eSJin Yao        "UMask": "0x1"
840*2c72404eSJin Yao    },
841*2c72404eSJin Yao    {
842*2c72404eSJin Yao        "BriefDescription": "Cycles where at least 4 uops were executed per-thread",
843*2c72404eSJin Yao        "Counter": "0,1,2,3",
844*2c72404eSJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
845*2c72404eSJin Yao        "CounterMask": "4",
846*2c72404eSJin Yao        "EventCode": "0xB1",
847*2c72404eSJin Yao        "EventName": "UOPS_EXECUTED.CYCLES_GE_4_UOPS_EXEC",
848*2c72404eSJin Yao        "PublicDescription": "Cycles where at least 4 uops were executed per-thread.",
849*2c72404eSJin Yao        "SampleAfterValue": "2000003",
850*2c72404eSJin Yao        "UMask": "0x1"
851*2c72404eSJin Yao    },
852*2c72404eSJin Yao    {
853*2c72404eSJin Yao        "BriefDescription": "Counts number of cycles no uops were dispatched to be executed on this thread.",
854*2c72404eSJin Yao        "Counter": "0,1,2,3",
855*2c72404eSJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
856*2c72404eSJin Yao        "CounterMask": "1",
857*2c72404eSJin Yao        "EventCode": "0xB1",
858*2c72404eSJin Yao        "EventName": "UOPS_EXECUTED.STALL_CYCLES",
859*2c72404eSJin Yao        "Invert": "1",
860*2c72404eSJin Yao        "PublicDescription": "Counts cycles during which no uops were dispatched from the Reservation Station (RS) per thread.",
861*2c72404eSJin Yao        "SampleAfterValue": "2000003",
862*2c72404eSJin Yao        "UMask": "0x1"
863*2c72404eSJin Yao    },
864*2c72404eSJin Yao    {
865*2c72404eSJin Yao        "BriefDescription": "Counts the number of uops to be executed per-thread each cycle.",
866*2c72404eSJin Yao        "Counter": "0,1,2,3",
867*2c72404eSJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
868*2c72404eSJin Yao        "EventCode": "0xB1",
869*2c72404eSJin Yao        "EventName": "UOPS_EXECUTED.THREAD",
870*2c72404eSJin Yao        "PublicDescription": "Number of uops to be executed per-thread each cycle.",
871*2c72404eSJin Yao        "SampleAfterValue": "2000003",
872*2c72404eSJin Yao        "UMask": "0x1"
873*2c72404eSJin Yao    },
874*2c72404eSJin Yao    {
875*2c72404eSJin Yao        "BriefDescription": "Counts the number of x87 uops dispatched.",
876*2c72404eSJin Yao        "Counter": "0,1,2,3",
877*2c72404eSJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
878*2c72404eSJin Yao        "EventCode": "0xB1",
879*2c72404eSJin Yao        "EventName": "UOPS_EXECUTED.X87",
880*2c72404eSJin Yao        "PublicDescription": "Counts the number of x87 uops executed.",
881*2c72404eSJin Yao        "SampleAfterValue": "2000003",
882*2c72404eSJin Yao        "UMask": "0x10"
883*2c72404eSJin Yao    },
884*2c72404eSJin Yao    {
885*2c72404eSJin Yao        "BriefDescription": "Uops that Resource Allocation Table (RAT) issues to Reservation Station (RS)",
886*2c72404eSJin Yao        "Counter": "0,1,2,3",
887*2c72404eSJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
888*2c72404eSJin Yao        "EventCode": "0x0E",
889*2c72404eSJin Yao        "EventName": "UOPS_ISSUED.ANY",
890*2c72404eSJin Yao        "PublicDescription": "Counts the number of uops that the Resource Allocation Table (RAT) issues to the Reservation Station (RS).",
891*2c72404eSJin Yao        "SampleAfterValue": "2000003",
892*2c72404eSJin Yao        "UMask": "0x1"
893*2c72404eSJin Yao    },
894*2c72404eSJin Yao    {
895*2c72404eSJin 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.",
896*2c72404eSJin Yao        "Counter": "0,1,2,3",
897*2c72404eSJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
898*2c72404eSJin Yao        "EventCode": "0x0E",
899*2c72404eSJin Yao        "EventName": "UOPS_ISSUED.SLOW_LEA",
900*2c72404eSJin Yao        "SampleAfterValue": "2000003",
901*2c72404eSJin Yao        "UMask": "0x20"
902*2c72404eSJin Yao    },
903*2c72404eSJin Yao    {
904*2c72404eSJin Yao        "BriefDescription": "Cycles when Resource Allocation Table (RAT) does not issue Uops to Reservation Station (RS) for the thread",
905*2c72404eSJin Yao        "Counter": "0,1,2,3",
906*2c72404eSJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
907*2c72404eSJin Yao        "CounterMask": "1",
908*2c72404eSJin Yao        "EventCode": "0x0E",
909*2c72404eSJin Yao        "EventName": "UOPS_ISSUED.STALL_CYCLES",
910*2c72404eSJin Yao        "Invert": "1",
911*2c72404eSJin 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.",
912*2c72404eSJin Yao        "SampleAfterValue": "2000003",
913*2c72404eSJin Yao        "UMask": "0x1"
914*2c72404eSJin Yao    },
915*2c72404eSJin Yao    {
916*2c72404eSJin Yao        "BriefDescription": "Uops inserted at issue-stage in order to preserve upper bits of vector registers.",
917*2c72404eSJin Yao        "Counter": "0,1,2,3",
918*2c72404eSJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
919*2c72404eSJin Yao        "EventCode": "0x0E",
920*2c72404eSJin Yao        "EventName": "UOPS_ISSUED.VECTOR_WIDTH_MISMATCH",
921*2c72404eSJin 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.",
922*2c72404eSJin Yao        "SampleAfterValue": "2000003",
923*2c72404eSJin Yao        "UMask": "0x2"
924*2c72404eSJin Yao    },
925*2c72404eSJin Yao    {
926*2c72404eSJin Yao        "BriefDescription": "Number of macro-fused uops retired. (non precise)",
927*2c72404eSJin Yao        "Counter": "0,1,2,3",
928*2c72404eSJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
929*2c72404eSJin Yao        "EventCode": "0xc2",
930*2c72404eSJin Yao        "EventName": "UOPS_RETIRED.MACRO_FUSED",
931*2c72404eSJin Yao        "PublicDescription": "Counts the number of macro-fused uops retired. (non precise)",
932*2c72404eSJin Yao        "SampleAfterValue": "2000003",
933*2c72404eSJin Yao        "UMask": "0x4"
934*2c72404eSJin Yao    },
935*2c72404eSJin Yao    {
936*2c72404eSJin Yao        "BriefDescription": "Retirement slots used.",
937*2c72404eSJin Yao        "Counter": "0,1,2,3",
938*2c72404eSJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
939*2c72404eSJin Yao        "EventCode": "0xC2",
940*2c72404eSJin Yao        "EventName": "UOPS_RETIRED.RETIRE_SLOTS",
941*2c72404eSJin Yao        "PublicDescription": "Counts the retirement slots used.",
942*2c72404eSJin Yao        "SampleAfterValue": "2000003",
943*2c72404eSJin Yao        "UMask": "0x2"
944b5ff7f27SJin Yao    },
945b5ff7f27SJin Yao    {
946b5ff7f27SJin Yao        "BriefDescription": "Cycles without actually retired uops.",
947b5ff7f27SJin Yao        "Counter": "0,1,2,3",
948b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
949b5ff7f27SJin Yao        "CounterMask": "1",
950b5ff7f27SJin Yao        "EventCode": "0xC2",
951b5ff7f27SJin Yao        "EventName": "UOPS_RETIRED.STALL_CYCLES",
952b5ff7f27SJin Yao        "Invert": "1",
953b5ff7f27SJin Yao        "PublicDescription": "This event counts cycles without actually retired uops.",
954b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
955b5ff7f27SJin Yao        "UMask": "0x2"
956b5ff7f27SJin Yao    },
957b5ff7f27SJin Yao    {
958*2c72404eSJin Yao        "BriefDescription": "Cycles with less than 10 actually retired uops.",
959b5ff7f27SJin Yao        "Counter": "0,1,2,3",
960b5ff7f27SJin Yao        "CounterHTOff": "0,1,2,3,4,5,6,7",
961b5ff7f27SJin Yao        "CounterMask": "10",
962b5ff7f27SJin Yao        "EventCode": "0xC2",
963*2c72404eSJin Yao        "EventName": "UOPS_RETIRED.TOTAL_CYCLES",
964*2c72404eSJin Yao        "Invert": "1",
965*2c72404eSJin Yao        "PublicDescription": "Number of cycles using always true condition (uops_ret < 16) applied to non PEBS uops retired event.",
966b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
967b5ff7f27SJin Yao        "UMask": "0x2"
968630171d4SAndi Kleen    }
969630171d4SAndi Kleen]