1f9900dd0SZhengjun Xing[
2f9900dd0SZhengjun Xing    {
3*4c12f41aSZhengjun Xing        "BriefDescription": "This event is deprecated. Refer to new event ARITH.DIV_ACTIVE",
4*4c12f41aSZhengjun Xing        "CounterMask": "1",
5*4c12f41aSZhengjun Xing        "Deprecated": "1",
6*4c12f41aSZhengjun Xing        "EventCode": "0xb0",
7*4c12f41aSZhengjun Xing        "EventName": "ARITH.DIVIDER_ACTIVE",
8*4c12f41aSZhengjun Xing        "SampleAfterValue": "1000003",
9*4c12f41aSZhengjun Xing        "UMask": "0x9",
10*4c12f41aSZhengjun Xing        "Unit": "cpu_core"
11*4c12f41aSZhengjun Xing    },
12*4c12f41aSZhengjun Xing    {
13*4c12f41aSZhengjun Xing        "BriefDescription": "Cycles when divide unit is busy executing divide or square root operations.",
14*4c12f41aSZhengjun Xing        "CounterMask": "1",
15*4c12f41aSZhengjun Xing        "EventCode": "0xb0",
16*4c12f41aSZhengjun Xing        "EventName": "ARITH.DIV_ACTIVE",
17*4c12f41aSZhengjun Xing        "PublicDescription": "Counts cycles when divide unit is busy executing divide or square root operations. Accounts for integer and floating-point operations.",
18*4c12f41aSZhengjun Xing        "SampleAfterValue": "1000003",
19*4c12f41aSZhengjun Xing        "UMask": "0x9",
20*4c12f41aSZhengjun Xing        "Unit": "cpu_core"
21*4c12f41aSZhengjun Xing    },
22*4c12f41aSZhengjun Xing    {
23*4c12f41aSZhengjun Xing        "BriefDescription": "This event is deprecated. Refer to new event ARITH.FPDIV_ACTIVE",
24*4c12f41aSZhengjun Xing        "CounterMask": "1",
25*4c12f41aSZhengjun Xing        "Deprecated": "1",
26*4c12f41aSZhengjun Xing        "EventCode": "0xb0",
27*4c12f41aSZhengjun Xing        "EventName": "ARITH.FP_DIVIDER_ACTIVE",
28*4c12f41aSZhengjun Xing        "SampleAfterValue": "1000003",
29*4c12f41aSZhengjun Xing        "UMask": "0x1",
30*4c12f41aSZhengjun Xing        "Unit": "cpu_core"
31*4c12f41aSZhengjun Xing    },
32*4c12f41aSZhengjun Xing    {
33*4c12f41aSZhengjun Xing        "BriefDescription": "This event counts the cycles the integer divider is busy.",
34*4c12f41aSZhengjun Xing        "EventCode": "0xb0",
35*4c12f41aSZhengjun Xing        "EventName": "ARITH.IDIV_ACTIVE",
36*4c12f41aSZhengjun Xing        "SampleAfterValue": "1000003",
37*4c12f41aSZhengjun Xing        "UMask": "0x8",
38*4c12f41aSZhengjun Xing        "Unit": "cpu_core"
39*4c12f41aSZhengjun Xing    },
40*4c12f41aSZhengjun Xing    {
41*4c12f41aSZhengjun Xing        "BriefDescription": "This event is deprecated. Refer to new event ARITH.IDIV_ACTIVE",
42*4c12f41aSZhengjun Xing        "CounterMask": "1",
43*4c12f41aSZhengjun Xing        "Deprecated": "1",
44*4c12f41aSZhengjun Xing        "EventCode": "0xb0",
45*4c12f41aSZhengjun Xing        "EventName": "ARITH.INT_DIVIDER_ACTIVE",
46*4c12f41aSZhengjun Xing        "SampleAfterValue": "1000003",
47*4c12f41aSZhengjun Xing        "UMask": "0x8",
48*4c12f41aSZhengjun Xing        "Unit": "cpu_core"
49*4c12f41aSZhengjun Xing    },
50*4c12f41aSZhengjun Xing    {
51*4c12f41aSZhengjun Xing        "BriefDescription": "Number of occurrences where a microcode assist is invoked by hardware.",
52*4c12f41aSZhengjun Xing        "EventCode": "0xc1",
53*4c12f41aSZhengjun Xing        "EventName": "ASSISTS.ANY",
54*4c12f41aSZhengjun Xing        "PublicDescription": "Counts the number of occurrences where a microcode assist is invoked by hardware. Examples include AD (page Access Dirty), FP and AVX related assists.",
55*4c12f41aSZhengjun Xing        "SampleAfterValue": "100003",
56*4c12f41aSZhengjun Xing        "UMask": "0x1b",
57*4c12f41aSZhengjun Xing        "Unit": "cpu_core"
58*4c12f41aSZhengjun Xing    },
59*4c12f41aSZhengjun Xing    {
60f9900dd0SZhengjun Xing        "BriefDescription": "Counts the total number of branch instructions retired for all branch types.",
61f9900dd0SZhengjun Xing        "EventCode": "0xc4",
62f9900dd0SZhengjun Xing        "EventName": "BR_INST_RETIRED.ALL_BRANCHES",
63f9900dd0SZhengjun Xing        "PEBS": "1",
64*4c12f41aSZhengjun Xing        "PublicDescription": "Counts the total number of instructions in which the instruction pointer (IP) of the processor is resteered due to a branch instruction and the branch instruction successfully retires.  All branch type instructions are accounted for.",
65f9900dd0SZhengjun Xing        "SampleAfterValue": "200003",
66f9900dd0SZhengjun Xing        "Unit": "cpu_atom"
67f9900dd0SZhengjun Xing    },
68f9900dd0SZhengjun Xing    {
69*4c12f41aSZhengjun Xing        "BriefDescription": "All branch instructions retired.",
70*4c12f41aSZhengjun Xing        "EventCode": "0xc4",
71*4c12f41aSZhengjun Xing        "EventName": "BR_INST_RETIRED.ALL_BRANCHES",
72*4c12f41aSZhengjun Xing        "PEBS": "1",
73*4c12f41aSZhengjun Xing        "PublicDescription": "Counts all branch instructions retired.",
74*4c12f41aSZhengjun Xing        "SampleAfterValue": "400009",
75*4c12f41aSZhengjun Xing        "Unit": "cpu_core"
76*4c12f41aSZhengjun Xing    },
77*4c12f41aSZhengjun Xing    {
78f9900dd0SZhengjun Xing        "BriefDescription": "This event is deprecated. Refer to new event BR_INST_RETIRED.NEAR_CALL",
79*4c12f41aSZhengjun Xing        "Deprecated": "1",
80f9900dd0SZhengjun Xing        "EventCode": "0xc4",
81f9900dd0SZhengjun Xing        "EventName": "BR_INST_RETIRED.CALL",
82f9900dd0SZhengjun Xing        "PEBS": "1",
83f9900dd0SZhengjun Xing        "SampleAfterValue": "200003",
84f9900dd0SZhengjun Xing        "UMask": "0xf9",
85f9900dd0SZhengjun Xing        "Unit": "cpu_atom"
86f9900dd0SZhengjun Xing    },
87f9900dd0SZhengjun Xing    {
88a95ab294SIan Rogers        "BriefDescription": "Counts the number of retired JCC (Jump on Conditional Code) branch instructions retired, includes both taken and not taken branches.",
89a95ab294SIan Rogers        "EventCode": "0xc4",
90a95ab294SIan Rogers        "EventName": "BR_INST_RETIRED.COND",
91a95ab294SIan Rogers        "PEBS": "1",
92a95ab294SIan Rogers        "SampleAfterValue": "200003",
93a95ab294SIan Rogers        "UMask": "0x7e",
94a95ab294SIan Rogers        "Unit": "cpu_atom"
95a95ab294SIan Rogers    },
96a95ab294SIan Rogers    {
97f9900dd0SZhengjun Xing        "BriefDescription": "Conditional branch instructions retired.",
98f9900dd0SZhengjun Xing        "EventCode": "0xc4",
99f9900dd0SZhengjun Xing        "EventName": "BR_INST_RETIRED.COND",
100f9900dd0SZhengjun Xing        "PEBS": "1",
101*4c12f41aSZhengjun Xing        "PublicDescription": "Counts conditional branch instructions retired.",
102f9900dd0SZhengjun Xing        "SampleAfterValue": "400009",
103f9900dd0SZhengjun Xing        "UMask": "0x11",
104f9900dd0SZhengjun Xing        "Unit": "cpu_core"
105f9900dd0SZhengjun Xing    },
106f9900dd0SZhengjun Xing    {
107f9900dd0SZhengjun Xing        "BriefDescription": "Not taken branch instructions retired.",
108f9900dd0SZhengjun Xing        "EventCode": "0xc4",
109f9900dd0SZhengjun Xing        "EventName": "BR_INST_RETIRED.COND_NTAKEN",
110f9900dd0SZhengjun Xing        "PEBS": "1",
111*4c12f41aSZhengjun Xing        "PublicDescription": "Counts not taken branch instructions retired.",
112f9900dd0SZhengjun Xing        "SampleAfterValue": "400009",
113f9900dd0SZhengjun Xing        "UMask": "0x10",
114f9900dd0SZhengjun Xing        "Unit": "cpu_core"
115f9900dd0SZhengjun Xing    },
116f9900dd0SZhengjun Xing    {
117*4c12f41aSZhengjun Xing        "BriefDescription": "Counts the number of taken JCC (Jump on Conditional Code) branch instructions retired.",
118f9900dd0SZhengjun Xing        "EventCode": "0xc4",
119f9900dd0SZhengjun Xing        "EventName": "BR_INST_RETIRED.COND_TAKEN",
120f9900dd0SZhengjun Xing        "PEBS": "1",
121*4c12f41aSZhengjun Xing        "SampleAfterValue": "200003",
122*4c12f41aSZhengjun Xing        "UMask": "0xfe",
123*4c12f41aSZhengjun Xing        "Unit": "cpu_atom"
124*4c12f41aSZhengjun Xing    },
125*4c12f41aSZhengjun Xing    {
126*4c12f41aSZhengjun Xing        "BriefDescription": "Taken conditional branch instructions retired.",
127*4c12f41aSZhengjun Xing        "EventCode": "0xc4",
128*4c12f41aSZhengjun Xing        "EventName": "BR_INST_RETIRED.COND_TAKEN",
129*4c12f41aSZhengjun Xing        "PEBS": "1",
130*4c12f41aSZhengjun Xing        "PublicDescription": "Counts taken conditional branch instructions retired.",
131f9900dd0SZhengjun Xing        "SampleAfterValue": "400009",
132f9900dd0SZhengjun Xing        "UMask": "0x1",
133f9900dd0SZhengjun Xing        "Unit": "cpu_core"
134f9900dd0SZhengjun Xing    },
135f9900dd0SZhengjun Xing    {
136*4c12f41aSZhengjun Xing        "BriefDescription": "Counts the number of far branch instructions retired, includes far jump, far call and return, and interrupt call and return.",
137f9900dd0SZhengjun Xing        "EventCode": "0xc4",
138f9900dd0SZhengjun Xing        "EventName": "BR_INST_RETIRED.FAR_BRANCH",
139f9900dd0SZhengjun Xing        "PEBS": "1",
140*4c12f41aSZhengjun Xing        "SampleAfterValue": "200003",
141*4c12f41aSZhengjun Xing        "UMask": "0xbf",
142*4c12f41aSZhengjun Xing        "Unit": "cpu_atom"
143*4c12f41aSZhengjun Xing    },
144*4c12f41aSZhengjun Xing    {
145*4c12f41aSZhengjun Xing        "BriefDescription": "Far branch instructions retired.",
146*4c12f41aSZhengjun Xing        "EventCode": "0xc4",
147*4c12f41aSZhengjun Xing        "EventName": "BR_INST_RETIRED.FAR_BRANCH",
148*4c12f41aSZhengjun Xing        "PEBS": "1",
149*4c12f41aSZhengjun Xing        "PublicDescription": "Counts far branch instructions retired.",
150f9900dd0SZhengjun Xing        "SampleAfterValue": "100007",
151f9900dd0SZhengjun Xing        "UMask": "0x40",
152f9900dd0SZhengjun Xing        "Unit": "cpu_core"
153f9900dd0SZhengjun Xing    },
154f9900dd0SZhengjun Xing    {
155*4c12f41aSZhengjun Xing        "BriefDescription": "Counts the number of near indirect JMP and near indirect CALL branch instructions retired.",
156f9900dd0SZhengjun Xing        "EventCode": "0xc4",
157f9900dd0SZhengjun Xing        "EventName": "BR_INST_RETIRED.INDIRECT",
158f9900dd0SZhengjun Xing        "PEBS": "1",
159*4c12f41aSZhengjun Xing        "SampleAfterValue": "200003",
160*4c12f41aSZhengjun Xing        "UMask": "0xeb",
161*4c12f41aSZhengjun Xing        "Unit": "cpu_atom"
162*4c12f41aSZhengjun Xing    },
163*4c12f41aSZhengjun Xing    {
164*4c12f41aSZhengjun Xing        "BriefDescription": "Indirect near branch instructions retired (excluding returns)",
165*4c12f41aSZhengjun Xing        "EventCode": "0xc4",
166*4c12f41aSZhengjun Xing        "EventName": "BR_INST_RETIRED.INDIRECT",
167*4c12f41aSZhengjun Xing        "PEBS": "1",
168*4c12f41aSZhengjun Xing        "PublicDescription": "Counts near indirect branch instructions retired excluding returns. TSX abort is an indirect branch.",
169f9900dd0SZhengjun Xing        "SampleAfterValue": "100003",
170f9900dd0SZhengjun Xing        "UMask": "0x80",
171f9900dd0SZhengjun Xing        "Unit": "cpu_core"
172f9900dd0SZhengjun Xing    },
173f9900dd0SZhengjun Xing    {
174*4c12f41aSZhengjun Xing        "BriefDescription": "Counts the number of near indirect CALL branch instructions retired.",
175*4c12f41aSZhengjun Xing        "EventCode": "0xc4",
176*4c12f41aSZhengjun Xing        "EventName": "BR_INST_RETIRED.INDIRECT_CALL",
177*4c12f41aSZhengjun Xing        "PEBS": "1",
178*4c12f41aSZhengjun Xing        "SampleAfterValue": "200003",
179*4c12f41aSZhengjun Xing        "UMask": "0xfb",
180*4c12f41aSZhengjun Xing        "Unit": "cpu_atom"
181*4c12f41aSZhengjun Xing    },
182*4c12f41aSZhengjun Xing    {
183*4c12f41aSZhengjun Xing        "BriefDescription": "This event is deprecated. Refer to new event BR_INST_RETIRED.INDIRECT_CALL",
184*4c12f41aSZhengjun Xing        "Deprecated": "1",
185*4c12f41aSZhengjun Xing        "EventCode": "0xc4",
186*4c12f41aSZhengjun Xing        "EventName": "BR_INST_RETIRED.IND_CALL",
187*4c12f41aSZhengjun Xing        "PEBS": "1",
188*4c12f41aSZhengjun Xing        "SampleAfterValue": "200003",
189*4c12f41aSZhengjun Xing        "UMask": "0xfb",
190*4c12f41aSZhengjun Xing        "Unit": "cpu_atom"
191*4c12f41aSZhengjun Xing    },
192*4c12f41aSZhengjun Xing    {
193*4c12f41aSZhengjun Xing        "BriefDescription": "This event is deprecated. Refer to new event BR_INST_RETIRED.COND",
194*4c12f41aSZhengjun Xing        "Deprecated": "1",
195*4c12f41aSZhengjun Xing        "EventCode": "0xc4",
196*4c12f41aSZhengjun Xing        "EventName": "BR_INST_RETIRED.JCC",
197*4c12f41aSZhengjun Xing        "PEBS": "1",
198*4c12f41aSZhengjun Xing        "SampleAfterValue": "200003",
199*4c12f41aSZhengjun Xing        "UMask": "0x7e",
200*4c12f41aSZhengjun Xing        "Unit": "cpu_atom"
201*4c12f41aSZhengjun Xing    },
202*4c12f41aSZhengjun Xing    {
203*4c12f41aSZhengjun Xing        "BriefDescription": "Counts the number of near CALL branch instructions retired.",
204f9900dd0SZhengjun Xing        "EventCode": "0xc4",
205f9900dd0SZhengjun Xing        "EventName": "BR_INST_RETIRED.NEAR_CALL",
206f9900dd0SZhengjun Xing        "PEBS": "1",
207*4c12f41aSZhengjun Xing        "SampleAfterValue": "200003",
208*4c12f41aSZhengjun Xing        "UMask": "0xf9",
209*4c12f41aSZhengjun Xing        "Unit": "cpu_atom"
210*4c12f41aSZhengjun Xing    },
211*4c12f41aSZhengjun Xing    {
212*4c12f41aSZhengjun Xing        "BriefDescription": "Direct and indirect near call instructions retired.",
213*4c12f41aSZhengjun Xing        "EventCode": "0xc4",
214*4c12f41aSZhengjun Xing        "EventName": "BR_INST_RETIRED.NEAR_CALL",
215*4c12f41aSZhengjun Xing        "PEBS": "1",
216*4c12f41aSZhengjun Xing        "PublicDescription": "Counts both direct and indirect near call instructions retired.",
217f9900dd0SZhengjun Xing        "SampleAfterValue": "100007",
218f9900dd0SZhengjun Xing        "UMask": "0x2",
219f9900dd0SZhengjun Xing        "Unit": "cpu_core"
220f9900dd0SZhengjun Xing    },
221f9900dd0SZhengjun Xing    {
222*4c12f41aSZhengjun Xing        "BriefDescription": "Counts the number of near RET branch instructions retired.",
223f9900dd0SZhengjun Xing        "EventCode": "0xc4",
224f9900dd0SZhengjun Xing        "EventName": "BR_INST_RETIRED.NEAR_RETURN",
225f9900dd0SZhengjun Xing        "PEBS": "1",
226*4c12f41aSZhengjun Xing        "SampleAfterValue": "200003",
227*4c12f41aSZhengjun Xing        "UMask": "0xf7",
228*4c12f41aSZhengjun Xing        "Unit": "cpu_atom"
229*4c12f41aSZhengjun Xing    },
230*4c12f41aSZhengjun Xing    {
231*4c12f41aSZhengjun Xing        "BriefDescription": "Return instructions retired.",
232*4c12f41aSZhengjun Xing        "EventCode": "0xc4",
233*4c12f41aSZhengjun Xing        "EventName": "BR_INST_RETIRED.NEAR_RETURN",
234*4c12f41aSZhengjun Xing        "PEBS": "1",
235*4c12f41aSZhengjun Xing        "PublicDescription": "Counts return instructions retired.",
236f9900dd0SZhengjun Xing        "SampleAfterValue": "100007",
237f9900dd0SZhengjun Xing        "UMask": "0x8",
238f9900dd0SZhengjun Xing        "Unit": "cpu_core"
239f9900dd0SZhengjun Xing    },
240f9900dd0SZhengjun Xing    {
241f9900dd0SZhengjun Xing        "BriefDescription": "Taken branch instructions retired.",
242f9900dd0SZhengjun Xing        "EventCode": "0xc4",
243f9900dd0SZhengjun Xing        "EventName": "BR_INST_RETIRED.NEAR_TAKEN",
244f9900dd0SZhengjun Xing        "PEBS": "1",
245*4c12f41aSZhengjun Xing        "PublicDescription": "Counts taken branch instructions retired.",
246f9900dd0SZhengjun Xing        "SampleAfterValue": "400009",
247f9900dd0SZhengjun Xing        "UMask": "0x20",
248f9900dd0SZhengjun Xing        "Unit": "cpu_core"
249f9900dd0SZhengjun Xing    },
250f9900dd0SZhengjun Xing    {
251*4c12f41aSZhengjun Xing        "BriefDescription": "This event is deprecated. Refer to new event BR_INST_RETIRED.INDIRECT",
252*4c12f41aSZhengjun Xing        "Deprecated": "1",
253*4c12f41aSZhengjun Xing        "EventCode": "0xc4",
254*4c12f41aSZhengjun Xing        "EventName": "BR_INST_RETIRED.NON_RETURN_IND",
255*4c12f41aSZhengjun Xing        "PEBS": "1",
256*4c12f41aSZhengjun Xing        "SampleAfterValue": "200003",
257*4c12f41aSZhengjun Xing        "UMask": "0xeb",
258*4c12f41aSZhengjun Xing        "Unit": "cpu_atom"
259*4c12f41aSZhengjun Xing    },
260*4c12f41aSZhengjun Xing    {
261*4c12f41aSZhengjun Xing        "BriefDescription": "Counts the number of near relative CALL branch instructions retired.",
262*4c12f41aSZhengjun Xing        "EventCode": "0xc4",
263*4c12f41aSZhengjun Xing        "EventName": "BR_INST_RETIRED.REL_CALL",
264*4c12f41aSZhengjun Xing        "PEBS": "1",
265*4c12f41aSZhengjun Xing        "SampleAfterValue": "200003",
266*4c12f41aSZhengjun Xing        "UMask": "0xfd",
267*4c12f41aSZhengjun Xing        "Unit": "cpu_atom"
268*4c12f41aSZhengjun Xing    },
269*4c12f41aSZhengjun Xing    {
270*4c12f41aSZhengjun Xing        "BriefDescription": "This event is deprecated. Refer to new event BR_INST_RETIRED.NEAR_RETURN",
271*4c12f41aSZhengjun Xing        "Deprecated": "1",
272*4c12f41aSZhengjun Xing        "EventCode": "0xc4",
273*4c12f41aSZhengjun Xing        "EventName": "BR_INST_RETIRED.RETURN",
274*4c12f41aSZhengjun Xing        "PEBS": "1",
275*4c12f41aSZhengjun Xing        "SampleAfterValue": "200003",
276*4c12f41aSZhengjun Xing        "UMask": "0xf7",
277*4c12f41aSZhengjun Xing        "Unit": "cpu_atom"
278*4c12f41aSZhengjun Xing    },
279*4c12f41aSZhengjun Xing    {
280*4c12f41aSZhengjun Xing        "BriefDescription": "This event is deprecated. Refer to new event BR_INST_RETIRED.COND_TAKEN",
281*4c12f41aSZhengjun Xing        "Deprecated": "1",
282*4c12f41aSZhengjun Xing        "EventCode": "0xc4",
283*4c12f41aSZhengjun Xing        "EventName": "BR_INST_RETIRED.TAKEN_JCC",
284*4c12f41aSZhengjun Xing        "PEBS": "1",
285*4c12f41aSZhengjun Xing        "SampleAfterValue": "200003",
286*4c12f41aSZhengjun Xing        "UMask": "0xfe",
287*4c12f41aSZhengjun Xing        "Unit": "cpu_atom"
288*4c12f41aSZhengjun Xing    },
289*4c12f41aSZhengjun Xing    {
290*4c12f41aSZhengjun Xing        "BriefDescription": "Counts the total number of mispredicted branch instructions retired for all branch types.",
291f9900dd0SZhengjun Xing        "EventCode": "0xc5",
292f9900dd0SZhengjun Xing        "EventName": "BR_MISP_RETIRED.ALL_BRANCHES",
293f9900dd0SZhengjun Xing        "PEBS": "1",
294*4c12f41aSZhengjun Xing        "PublicDescription": "Counts the total number of mispredicted branch instructions retired.  All branch type instructions are accounted for.  Prediction of the branch target address enables the processor to begin executing instructions before the non-speculative execution path is known. The branch prediction unit (BPU) predicts the target address based on the instruction pointer (IP) of the branch and on the execution path through which execution reached this IP.    A branch misprediction occurs when the prediction is wrong, and results in discarding all instructions executed in the speculative path and re-fetching from the correct path.",
295*4c12f41aSZhengjun Xing        "SampleAfterValue": "200003",
296*4c12f41aSZhengjun Xing        "Unit": "cpu_atom"
297*4c12f41aSZhengjun Xing    },
298*4c12f41aSZhengjun Xing    {
299*4c12f41aSZhengjun Xing        "BriefDescription": "All mispredicted branch instructions retired.",
300*4c12f41aSZhengjun Xing        "EventCode": "0xc5",
301*4c12f41aSZhengjun Xing        "EventName": "BR_MISP_RETIRED.ALL_BRANCHES",
302*4c12f41aSZhengjun Xing        "PEBS": "1",
303*4c12f41aSZhengjun Xing        "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.",
304f9900dd0SZhengjun Xing        "SampleAfterValue": "400009",
305f9900dd0SZhengjun Xing        "Unit": "cpu_core"
306f9900dd0SZhengjun Xing    },
307f9900dd0SZhengjun Xing    {
308*4c12f41aSZhengjun Xing        "BriefDescription": "Counts the number of mispredicted JCC (Jump on Conditional Code) branch instructions retired.",
309f9900dd0SZhengjun Xing        "EventCode": "0xc5",
310f9900dd0SZhengjun Xing        "EventName": "BR_MISP_RETIRED.COND",
311f9900dd0SZhengjun Xing        "PEBS": "1",
312*4c12f41aSZhengjun Xing        "SampleAfterValue": "200003",
313*4c12f41aSZhengjun Xing        "UMask": "0x7e",
314*4c12f41aSZhengjun Xing        "Unit": "cpu_atom"
315*4c12f41aSZhengjun Xing    },
316*4c12f41aSZhengjun Xing    {
317*4c12f41aSZhengjun Xing        "BriefDescription": "Mispredicted conditional branch instructions retired.",
318*4c12f41aSZhengjun Xing        "EventCode": "0xc5",
319*4c12f41aSZhengjun Xing        "EventName": "BR_MISP_RETIRED.COND",
320*4c12f41aSZhengjun Xing        "PEBS": "1",
321*4c12f41aSZhengjun Xing        "PublicDescription": "Counts mispredicted conditional branch instructions retired.",
322f9900dd0SZhengjun Xing        "SampleAfterValue": "400009",
323f9900dd0SZhengjun Xing        "UMask": "0x11",
324f9900dd0SZhengjun Xing        "Unit": "cpu_core"
325f9900dd0SZhengjun Xing    },
326f9900dd0SZhengjun Xing    {
327f9900dd0SZhengjun Xing        "BriefDescription": "Mispredicted non-taken conditional branch instructions retired.",
328f9900dd0SZhengjun Xing        "EventCode": "0xc5",
329f9900dd0SZhengjun Xing        "EventName": "BR_MISP_RETIRED.COND_NTAKEN",
330f9900dd0SZhengjun Xing        "PEBS": "1",
331*4c12f41aSZhengjun Xing        "PublicDescription": "Counts the number of conditional branch instructions retired that were mispredicted and the branch direction was not taken.",
332f9900dd0SZhengjun Xing        "SampleAfterValue": "400009",
333f9900dd0SZhengjun Xing        "UMask": "0x10",
334f9900dd0SZhengjun Xing        "Unit": "cpu_core"
335f9900dd0SZhengjun Xing    },
336f9900dd0SZhengjun Xing    {
337*4c12f41aSZhengjun Xing        "BriefDescription": "Counts the number of mispredicted taken JCC (Jump on Conditional Code) branch instructions retired.",
338f9900dd0SZhengjun Xing        "EventCode": "0xc5",
339f9900dd0SZhengjun Xing        "EventName": "BR_MISP_RETIRED.COND_TAKEN",
340f9900dd0SZhengjun Xing        "PEBS": "1",
341*4c12f41aSZhengjun Xing        "SampleAfterValue": "200003",
342*4c12f41aSZhengjun Xing        "UMask": "0xfe",
343*4c12f41aSZhengjun Xing        "Unit": "cpu_atom"
344*4c12f41aSZhengjun Xing    },
345*4c12f41aSZhengjun Xing    {
346*4c12f41aSZhengjun Xing        "BriefDescription": "number of branch instructions retired that were mispredicted and taken.",
347*4c12f41aSZhengjun Xing        "EventCode": "0xc5",
348*4c12f41aSZhengjun Xing        "EventName": "BR_MISP_RETIRED.COND_TAKEN",
349*4c12f41aSZhengjun Xing        "PEBS": "1",
350*4c12f41aSZhengjun Xing        "PublicDescription": "Counts taken conditional mispredicted branch instructions retired.",
351f9900dd0SZhengjun Xing        "SampleAfterValue": "400009",
352f9900dd0SZhengjun Xing        "UMask": "0x1",
353f9900dd0SZhengjun Xing        "Unit": "cpu_core"
354f9900dd0SZhengjun Xing    },
355f9900dd0SZhengjun Xing    {
356*4c12f41aSZhengjun Xing        "BriefDescription": "Counts the number of mispredicted near indirect JMP and near indirect CALL branch instructions retired.",
357*4c12f41aSZhengjun Xing        "EventCode": "0xc5",
358*4c12f41aSZhengjun Xing        "EventName": "BR_MISP_RETIRED.INDIRECT",
359*4c12f41aSZhengjun Xing        "PEBS": "1",
360*4c12f41aSZhengjun Xing        "SampleAfterValue": "200003",
361*4c12f41aSZhengjun Xing        "UMask": "0xeb",
362*4c12f41aSZhengjun Xing        "Unit": "cpu_atom"
363*4c12f41aSZhengjun Xing    },
364*4c12f41aSZhengjun Xing    {
365*4c12f41aSZhengjun Xing        "BriefDescription": "Counts the number of mispredicted near indirect CALL branch instructions retired.",
366f9900dd0SZhengjun Xing        "EventCode": "0xc5",
367f9900dd0SZhengjun Xing        "EventName": "BR_MISP_RETIRED.INDIRECT_CALL",
368f9900dd0SZhengjun Xing        "PEBS": "1",
369*4c12f41aSZhengjun Xing        "SampleAfterValue": "200003",
370*4c12f41aSZhengjun Xing        "UMask": "0xfb",
371*4c12f41aSZhengjun Xing        "Unit": "cpu_atom"
372*4c12f41aSZhengjun Xing    },
373*4c12f41aSZhengjun Xing    {
374*4c12f41aSZhengjun Xing        "BriefDescription": "Mispredicted indirect CALL retired.",
375*4c12f41aSZhengjun Xing        "EventCode": "0xc5",
376*4c12f41aSZhengjun Xing        "EventName": "BR_MISP_RETIRED.INDIRECT_CALL",
377*4c12f41aSZhengjun Xing        "PEBS": "1",
378*4c12f41aSZhengjun Xing        "PublicDescription": "Counts retired mispredicted indirect (near taken) CALL instructions, including both register and memory indirect.",
379f9900dd0SZhengjun Xing        "SampleAfterValue": "400009",
380f9900dd0SZhengjun Xing        "UMask": "0x2",
381f9900dd0SZhengjun Xing        "Unit": "cpu_core"
382f9900dd0SZhengjun Xing    },
383f9900dd0SZhengjun Xing    {
384*4c12f41aSZhengjun Xing        "BriefDescription": "This event is deprecated. Refer to new event BR_MISP_RETIRED.INDIRECT_CALL",
385*4c12f41aSZhengjun Xing        "Deprecated": "1",
386*4c12f41aSZhengjun Xing        "EventCode": "0xc5",
387*4c12f41aSZhengjun Xing        "EventName": "BR_MISP_RETIRED.IND_CALL",
388*4c12f41aSZhengjun Xing        "PEBS": "1",
389*4c12f41aSZhengjun Xing        "SampleAfterValue": "200003",
390*4c12f41aSZhengjun Xing        "UMask": "0xfb",
391*4c12f41aSZhengjun Xing        "Unit": "cpu_atom"
392*4c12f41aSZhengjun Xing    },
393*4c12f41aSZhengjun Xing    {
394*4c12f41aSZhengjun Xing        "BriefDescription": "This event is deprecated. Refer to new event BR_MISP_RETIRED.COND",
395*4c12f41aSZhengjun Xing        "Deprecated": "1",
396*4c12f41aSZhengjun Xing        "EventCode": "0xc5",
397*4c12f41aSZhengjun Xing        "EventName": "BR_MISP_RETIRED.JCC",
398*4c12f41aSZhengjun Xing        "PEBS": "1",
399*4c12f41aSZhengjun Xing        "SampleAfterValue": "200003",
400*4c12f41aSZhengjun Xing        "UMask": "0x7e",
401*4c12f41aSZhengjun Xing        "Unit": "cpu_atom"
402*4c12f41aSZhengjun Xing    },
403*4c12f41aSZhengjun Xing    {
404f9900dd0SZhengjun Xing        "BriefDescription": "Number of near branch instructions retired that were mispredicted and taken.",
405f9900dd0SZhengjun Xing        "EventCode": "0xc5",
406f9900dd0SZhengjun Xing        "EventName": "BR_MISP_RETIRED.NEAR_TAKEN",
407f9900dd0SZhengjun Xing        "PEBS": "1",
408*4c12f41aSZhengjun Xing        "PublicDescription": "Counts number of near branch instructions retired that were mispredicted and taken.",
409f9900dd0SZhengjun Xing        "SampleAfterValue": "400009",
410f9900dd0SZhengjun Xing        "UMask": "0x20",
411f9900dd0SZhengjun Xing        "Unit": "cpu_core"
412f9900dd0SZhengjun Xing    },
413f9900dd0SZhengjun Xing    {
414*4c12f41aSZhengjun Xing        "BriefDescription": "This event is deprecated. Refer to new event BR_MISP_RETIRED.INDIRECT",
415*4c12f41aSZhengjun Xing        "Deprecated": "1",
416*4c12f41aSZhengjun Xing        "EventCode": "0xc5",
417*4c12f41aSZhengjun Xing        "EventName": "BR_MISP_RETIRED.NON_RETURN_IND",
418*4c12f41aSZhengjun Xing        "PEBS": "1",
419*4c12f41aSZhengjun Xing        "SampleAfterValue": "200003",
420*4c12f41aSZhengjun Xing        "UMask": "0xeb",
421*4c12f41aSZhengjun Xing        "Unit": "cpu_atom"
422*4c12f41aSZhengjun Xing    },
423*4c12f41aSZhengjun Xing    {
424f9900dd0SZhengjun Xing        "BriefDescription": "This event counts the number of mispredicted ret instructions retired. Non PEBS",
425f9900dd0SZhengjun Xing        "EventCode": "0xc5",
426f9900dd0SZhengjun Xing        "EventName": "BR_MISP_RETIRED.RET",
427f9900dd0SZhengjun Xing        "PEBS": "1",
428*4c12f41aSZhengjun Xing        "PublicDescription": "This is a non-precise version (that is, does not use PEBS) of the event that counts mispredicted return instructions retired.",
429f9900dd0SZhengjun Xing        "SampleAfterValue": "100007",
430f9900dd0SZhengjun Xing        "UMask": "0x8",
431f9900dd0SZhengjun Xing        "Unit": "cpu_core"
432f9900dd0SZhengjun Xing    },
433f9900dd0SZhengjun Xing    {
434*4c12f41aSZhengjun Xing        "BriefDescription": "Counts the number of mispredicted near RET branch instructions retired.",
435*4c12f41aSZhengjun Xing        "EventCode": "0xc5",
436*4c12f41aSZhengjun Xing        "EventName": "BR_MISP_RETIRED.RETURN",
437*4c12f41aSZhengjun Xing        "PEBS": "1",
438*4c12f41aSZhengjun Xing        "SampleAfterValue": "200003",
439*4c12f41aSZhengjun Xing        "UMask": "0xf7",
440*4c12f41aSZhengjun Xing        "Unit": "cpu_atom"
441*4c12f41aSZhengjun Xing    },
442*4c12f41aSZhengjun Xing    {
443*4c12f41aSZhengjun Xing        "BriefDescription": "This event is deprecated. Refer to new event BR_MISP_RETIRED.COND_TAKEN",
444*4c12f41aSZhengjun Xing        "Deprecated": "1",
445*4c12f41aSZhengjun Xing        "EventCode": "0xc5",
446*4c12f41aSZhengjun Xing        "EventName": "BR_MISP_RETIRED.TAKEN_JCC",
447*4c12f41aSZhengjun Xing        "PEBS": "1",
448*4c12f41aSZhengjun Xing        "SampleAfterValue": "200003",
449*4c12f41aSZhengjun Xing        "UMask": "0xfe",
450*4c12f41aSZhengjun Xing        "Unit": "cpu_atom"
451*4c12f41aSZhengjun Xing    },
452*4c12f41aSZhengjun Xing    {
4535fa2481cSZhengjun Xing        "BriefDescription": "Core clocks when the thread is in the C0.1 light-weight slower wakeup time but more power saving optimized state.",
4545fa2481cSZhengjun Xing        "EventCode": "0xec",
4555fa2481cSZhengjun Xing        "EventName": "CPU_CLK_UNHALTED.C01",
456*4c12f41aSZhengjun Xing        "PublicDescription": "Counts core clocks when the thread is in the C0.1 light-weight slower wakeup time but more power saving optimized state.  This state can be entered via the TPAUSE or UMWAIT instructions.",
4575fa2481cSZhengjun Xing        "SampleAfterValue": "2000003",
4585fa2481cSZhengjun Xing        "UMask": "0x10",
4595fa2481cSZhengjun Xing        "Unit": "cpu_core"
4605fa2481cSZhengjun Xing    },
4615fa2481cSZhengjun Xing    {
4625fa2481cSZhengjun Xing        "BriefDescription": "Core clocks when the thread is in the C0.2 light-weight faster wakeup time but less power saving optimized state.",
4635fa2481cSZhengjun Xing        "EventCode": "0xec",
4645fa2481cSZhengjun Xing        "EventName": "CPU_CLK_UNHALTED.C02",
465*4c12f41aSZhengjun Xing        "PublicDescription": "Counts core clocks when the thread is in the C0.2 light-weight faster wakeup time but less power saving optimized state.  This state can be entered via the TPAUSE or UMWAIT instructions.",
4665fa2481cSZhengjun Xing        "SampleAfterValue": "2000003",
4675fa2481cSZhengjun Xing        "UMask": "0x20",
4685fa2481cSZhengjun Xing        "Unit": "cpu_core"
4695fa2481cSZhengjun Xing    },
4705fa2481cSZhengjun Xing    {
4715fa2481cSZhengjun Xing        "BriefDescription": "Core clocks when the thread is in the C0.1 or C0.2 or running a PAUSE in C0 ACPI state.",
4725fa2481cSZhengjun Xing        "EventCode": "0xec",
4735fa2481cSZhengjun Xing        "EventName": "CPU_CLK_UNHALTED.C0_WAIT",
474*4c12f41aSZhengjun Xing        "PublicDescription": "Counts core clocks when the thread is in the C0.1 or C0.2 power saving optimized states (TPAUSE or UMWAIT instructions) or running the PAUSE instruction.",
4755fa2481cSZhengjun Xing        "SampleAfterValue": "2000003",
4765fa2481cSZhengjun Xing        "UMask": "0x70",
4775fa2481cSZhengjun Xing        "Unit": "cpu_core"
4785fa2481cSZhengjun Xing    },
4795fa2481cSZhengjun Xing    {
480*4c12f41aSZhengjun Xing        "BriefDescription": "Counts the number of unhalted core clock cycles. (Fixed event)",
481*4c12f41aSZhengjun Xing        "EventName": "CPU_CLK_UNHALTED.CORE",
482*4c12f41aSZhengjun Xing        "PublicDescription": "Counts the number of core cycles while the core is not in a halt state. The core enters the halt state when it is running the HLT instruction. The core frequency may change from time to time. For this reason this event may have a changing ratio with regards to time. This event uses fixed counter 1.",
483*4c12f41aSZhengjun Xing        "SampleAfterValue": "2000003",
484*4c12f41aSZhengjun Xing        "UMask": "0x2",
485*4c12f41aSZhengjun Xing        "Unit": "cpu_atom"
486*4c12f41aSZhengjun Xing    },
487*4c12f41aSZhengjun Xing    {
488*4c12f41aSZhengjun Xing        "BriefDescription": "Counts the number of unhalted core clock cycles.",
489*4c12f41aSZhengjun Xing        "EventCode": "0x3c",
490*4c12f41aSZhengjun Xing        "EventName": "CPU_CLK_UNHALTED.CORE_P",
491*4c12f41aSZhengjun Xing        "PublicDescription": "Counts the number of core cycles while the core is not in a halt state. The core enters the halt state when it is running the HLT instruction. The core frequency may change from time to time. For this reason this event may have a changing ratio with regards to time. This event uses a programmable general purpose performance counter.",
492*4c12f41aSZhengjun Xing        "SampleAfterValue": "2000003",
493*4c12f41aSZhengjun Xing        "Unit": "cpu_atom"
494*4c12f41aSZhengjun Xing    },
495*4c12f41aSZhengjun Xing    {
496f9900dd0SZhengjun Xing        "BriefDescription": "Cycle counts are evenly distributed between active threads in the Core.",
497f9900dd0SZhengjun Xing        "EventCode": "0xec",
498f9900dd0SZhengjun Xing        "EventName": "CPU_CLK_UNHALTED.DISTRIBUTED",
499*4c12f41aSZhengjun Xing        "PublicDescription": "This event distributes cycle counts between active hyperthreads, i.e., those in C0.  A hyperthread becomes inactive when it executes the HLT or MWAIT instructions.  If all other hyperthreads are inactive (or disabled or do not exist), all counts are attributed to this hyperthread. To obtain the full count when the Core is active, sum the counts from each hyperthread.",
500f9900dd0SZhengjun Xing        "SampleAfterValue": "2000003",
501f9900dd0SZhengjun Xing        "UMask": "0x2",
502f9900dd0SZhengjun Xing        "Unit": "cpu_core"
503f9900dd0SZhengjun Xing    },
504f9900dd0SZhengjun Xing    {
505f9900dd0SZhengjun Xing        "BriefDescription": "Core crystal clock cycles when this thread is unhalted and the other thread is halted.",
506f9900dd0SZhengjun Xing        "EventCode": "0x3c",
507f9900dd0SZhengjun Xing        "EventName": "CPU_CLK_UNHALTED.ONE_THREAD_ACTIVE",
508*4c12f41aSZhengjun Xing        "PublicDescription": "Counts Core crystal clock cycles when current thread is unhalted and the other thread is halted.",
509f9900dd0SZhengjun Xing        "SampleAfterValue": "25003",
510f9900dd0SZhengjun Xing        "UMask": "0x2",
511f9900dd0SZhengjun Xing        "Unit": "cpu_core"
512f9900dd0SZhengjun Xing    },
513f9900dd0SZhengjun Xing    {
5145fa2481cSZhengjun Xing        "BriefDescription": "CPU_CLK_UNHALTED.PAUSE",
515f9900dd0SZhengjun Xing        "EventCode": "0xec",
516f9900dd0SZhengjun Xing        "EventName": "CPU_CLK_UNHALTED.PAUSE",
517f9900dd0SZhengjun Xing        "SampleAfterValue": "2000003",
518f9900dd0SZhengjun Xing        "UMask": "0x40",
519f9900dd0SZhengjun Xing        "Unit": "cpu_core"
520f9900dd0SZhengjun Xing    },
521f9900dd0SZhengjun Xing    {
5225fa2481cSZhengjun Xing        "BriefDescription": "CPU_CLK_UNHALTED.PAUSE_INST",
523f9900dd0SZhengjun Xing        "CounterMask": "1",
524f9900dd0SZhengjun Xing        "EdgeDetect": "1",
525f9900dd0SZhengjun Xing        "EventCode": "0xec",
526f9900dd0SZhengjun Xing        "EventName": "CPU_CLK_UNHALTED.PAUSE_INST",
527f9900dd0SZhengjun Xing        "SampleAfterValue": "2000003",
528f9900dd0SZhengjun Xing        "UMask": "0x40",
529f9900dd0SZhengjun Xing        "Unit": "cpu_core"
530f9900dd0SZhengjun Xing    },
531f9900dd0SZhengjun Xing    {
532f9900dd0SZhengjun Xing        "BriefDescription": "Core crystal clock cycles. Cycle counts are evenly distributed between active threads in the Core.",
533f9900dd0SZhengjun Xing        "EventCode": "0x3c",
534f9900dd0SZhengjun Xing        "EventName": "CPU_CLK_UNHALTED.REF_DISTRIBUTED",
535*4c12f41aSZhengjun Xing        "PublicDescription": "This event distributes Core crystal clock cycle counts between active hyperthreads, i.e., those in C0 sleep-state. A hyperthread becomes inactive when it executes the HLT or MWAIT instructions. If one thread is active in a core, all counts are attributed to this hyperthread. To obtain the full count when the Core is active, sum the counts from each hyperthread.",
536f9900dd0SZhengjun Xing        "SampleAfterValue": "2000003",
537f9900dd0SZhengjun Xing        "UMask": "0x8",
538f9900dd0SZhengjun Xing        "Unit": "cpu_core"
539f9900dd0SZhengjun Xing    },
540f9900dd0SZhengjun Xing    {
541*4c12f41aSZhengjun Xing        "BriefDescription": "Counts the number of unhalted reference clock cycles at TSC frequency. (Fixed event)",
542f9900dd0SZhengjun Xing        "EventName": "CPU_CLK_UNHALTED.REF_TSC",
543*4c12f41aSZhengjun Xing        "PublicDescription": "Counts the number of reference cycles that the core is not in a halt state. The core enters the halt state when it is running the HLT instruction. This event is not affected by core frequency changes and increments at a fixed frequency that is also used for the Time Stamp Counter (TSC). This event uses fixed counter 2.",
544f9900dd0SZhengjun Xing        "SampleAfterValue": "2000003",
545*4c12f41aSZhengjun Xing        "UMask": "0x3",
546*4c12f41aSZhengjun Xing        "Unit": "cpu_atom"
547*4c12f41aSZhengjun Xing    },
548*4c12f41aSZhengjun Xing    {
549*4c12f41aSZhengjun Xing        "BriefDescription": "Reference cycles when the core is not in halt state.",
550*4c12f41aSZhengjun Xing        "EventName": "CPU_CLK_UNHALTED.REF_TSC",
551*4c12f41aSZhengjun Xing        "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. It is counted on a dedicated fixed counter, leaving the eight 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.",
552*4c12f41aSZhengjun Xing        "SampleAfterValue": "2000003",
553f9900dd0SZhengjun Xing        "UMask": "0x3",
554f9900dd0SZhengjun Xing        "Unit": "cpu_core"
555f9900dd0SZhengjun Xing    },
556f9900dd0SZhengjun Xing    {
557*4c12f41aSZhengjun Xing        "BriefDescription": "Counts the number of unhalted reference clock cycles at TSC frequency.",
558a95ab294SIan Rogers        "EventCode": "0x3c",
559a95ab294SIan Rogers        "EventName": "CPU_CLK_UNHALTED.REF_TSC_P",
560*4c12f41aSZhengjun Xing        "PublicDescription": "Counts the number of reference cycles that the core is not in a halt state. The core enters the halt state when it is running the HLT instruction. This event is not affected by core frequency changes and increments at a fixed frequency that is also used for the Time Stamp Counter (TSC). This event uses a programmable general purpose performance counter.",
561a95ab294SIan Rogers        "SampleAfterValue": "2000003",
562*4c12f41aSZhengjun Xing        "UMask": "0x1",
563*4c12f41aSZhengjun Xing        "Unit": "cpu_atom"
564*4c12f41aSZhengjun Xing    },
565*4c12f41aSZhengjun Xing    {
566*4c12f41aSZhengjun Xing        "BriefDescription": "Reference cycles when the core is not in halt state.",
567*4c12f41aSZhengjun Xing        "EventCode": "0x3c",
568*4c12f41aSZhengjun Xing        "EventName": "CPU_CLK_UNHALTED.REF_TSC_P",
569*4c12f41aSZhengjun Xing        "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. 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.",
570*4c12f41aSZhengjun Xing        "SampleAfterValue": "2000003",
571a95ab294SIan Rogers        "UMask": "0x1",
572a95ab294SIan Rogers        "Unit": "cpu_core"
573a95ab294SIan Rogers    },
574a95ab294SIan Rogers    {
575*4c12f41aSZhengjun Xing        "BriefDescription": "Counts the number of unhalted core clock cycles. (Fixed event)",
576f9900dd0SZhengjun Xing        "EventName": "CPU_CLK_UNHALTED.THREAD",
577*4c12f41aSZhengjun Xing        "PublicDescription": "Counts the number of core cycles while the core is not in a halt state.  The core enters the halt state when it is running the HLT instruction. The core frequency may change from time to time. For this reason this event may have a changing ratio with regards to time.  This event uses fixed counter 1.",
578f9900dd0SZhengjun Xing        "SampleAfterValue": "2000003",
579*4c12f41aSZhengjun Xing        "UMask": "0x2",
580*4c12f41aSZhengjun Xing        "Unit": "cpu_atom"
581*4c12f41aSZhengjun Xing    },
582*4c12f41aSZhengjun Xing    {
583*4c12f41aSZhengjun Xing        "BriefDescription": "Core cycles when the thread is not in halt state",
584*4c12f41aSZhengjun Xing        "EventName": "CPU_CLK_UNHALTED.THREAD",
585*4c12f41aSZhengjun Xing        "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 eight programmable counters available for other events.",
586*4c12f41aSZhengjun Xing        "SampleAfterValue": "2000003",
587f9900dd0SZhengjun Xing        "UMask": "0x2",
588f9900dd0SZhengjun Xing        "Unit": "cpu_core"
589f9900dd0SZhengjun Xing    },
590f9900dd0SZhengjun Xing    {
591*4c12f41aSZhengjun Xing        "BriefDescription": "Counts the number of unhalted core clock cycles.",
592f9900dd0SZhengjun Xing        "EventCode": "0x3c",
593f9900dd0SZhengjun Xing        "EventName": "CPU_CLK_UNHALTED.THREAD_P",
594*4c12f41aSZhengjun Xing        "PublicDescription": "Counts the number of core cycles while the core is not in a halt state.  The core enters the halt state when it is running the HLT instruction. The core frequency may change from time to time. For this reason this event may have a changing ratio with regards to time. This event uses a programmable general purpose performance counter.",
595f9900dd0SZhengjun Xing        "SampleAfterValue": "2000003",
596*4c12f41aSZhengjun Xing        "Unit": "cpu_atom"
597*4c12f41aSZhengjun Xing    },
598*4c12f41aSZhengjun Xing    {
599*4c12f41aSZhengjun Xing        "BriefDescription": "Thread cycles when thread is not in halt state",
600*4c12f41aSZhengjun Xing        "EventCode": "0x3c",
601*4c12f41aSZhengjun Xing        "EventName": "CPU_CLK_UNHALTED.THREAD_P",
602*4c12f41aSZhengjun Xing        "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.",
603*4c12f41aSZhengjun Xing        "SampleAfterValue": "2000003",
604f9900dd0SZhengjun Xing        "Unit": "cpu_core"
605f9900dd0SZhengjun Xing    },
606f9900dd0SZhengjun Xing    {
607f9900dd0SZhengjun Xing        "BriefDescription": "Cycles while L1 cache miss demand load is outstanding.",
608f9900dd0SZhengjun Xing        "CounterMask": "8",
609f9900dd0SZhengjun Xing        "EventCode": "0xa3",
610f9900dd0SZhengjun Xing        "EventName": "CYCLE_ACTIVITY.CYCLES_L1D_MISS",
611f9900dd0SZhengjun Xing        "SampleAfterValue": "1000003",
612f9900dd0SZhengjun Xing        "UMask": "0x8",
613f9900dd0SZhengjun Xing        "Unit": "cpu_core"
614f9900dd0SZhengjun Xing    },
615f9900dd0SZhengjun Xing    {
616f9900dd0SZhengjun Xing        "BriefDescription": "Cycles while L2 cache miss demand load is outstanding.",
617f9900dd0SZhengjun Xing        "CounterMask": "1",
618f9900dd0SZhengjun Xing        "EventCode": "0xa3",
619f9900dd0SZhengjun Xing        "EventName": "CYCLE_ACTIVITY.CYCLES_L2_MISS",
620f9900dd0SZhengjun Xing        "SampleAfterValue": "1000003",
621f9900dd0SZhengjun Xing        "UMask": "0x1",
622f9900dd0SZhengjun Xing        "Unit": "cpu_core"
623f9900dd0SZhengjun Xing    },
624f9900dd0SZhengjun Xing    {
625f9900dd0SZhengjun Xing        "BriefDescription": "Cycles while memory subsystem has an outstanding load.",
626f9900dd0SZhengjun Xing        "CounterMask": "16",
627f9900dd0SZhengjun Xing        "EventCode": "0xa3",
628f9900dd0SZhengjun Xing        "EventName": "CYCLE_ACTIVITY.CYCLES_MEM_ANY",
629f9900dd0SZhengjun Xing        "SampleAfterValue": "1000003",
630f9900dd0SZhengjun Xing        "UMask": "0x10",
631f9900dd0SZhengjun Xing        "Unit": "cpu_core"
632f9900dd0SZhengjun Xing    },
633f9900dd0SZhengjun Xing    {
634f9900dd0SZhengjun Xing        "BriefDescription": "Execution stalls while L1 cache miss demand load is outstanding.",
635f9900dd0SZhengjun Xing        "CounterMask": "12",
636f9900dd0SZhengjun Xing        "EventCode": "0xa3",
637f9900dd0SZhengjun Xing        "EventName": "CYCLE_ACTIVITY.STALLS_L1D_MISS",
638f9900dd0SZhengjun Xing        "SampleAfterValue": "1000003",
639f9900dd0SZhengjun Xing        "UMask": "0xc",
640f9900dd0SZhengjun Xing        "Unit": "cpu_core"
641f9900dd0SZhengjun Xing    },
642f9900dd0SZhengjun Xing    {
643f9900dd0SZhengjun Xing        "BriefDescription": "Execution stalls while L2 cache miss demand load is outstanding.",
644f9900dd0SZhengjun Xing        "CounterMask": "5",
645f9900dd0SZhengjun Xing        "EventCode": "0xa3",
646f9900dd0SZhengjun Xing        "EventName": "CYCLE_ACTIVITY.STALLS_L2_MISS",
647f9900dd0SZhengjun Xing        "SampleAfterValue": "1000003",
648f9900dd0SZhengjun Xing        "UMask": "0x5",
649f9900dd0SZhengjun Xing        "Unit": "cpu_core"
650f9900dd0SZhengjun Xing    },
651f9900dd0SZhengjun Xing    {
652f9900dd0SZhengjun Xing        "BriefDescription": "Total execution stalls.",
653f9900dd0SZhengjun Xing        "CounterMask": "4",
654f9900dd0SZhengjun Xing        "EventCode": "0xa3",
655f9900dd0SZhengjun Xing        "EventName": "CYCLE_ACTIVITY.STALLS_TOTAL",
656f9900dd0SZhengjun Xing        "SampleAfterValue": "1000003",
657f9900dd0SZhengjun Xing        "UMask": "0x4",
658f9900dd0SZhengjun Xing        "Unit": "cpu_core"
659f9900dd0SZhengjun Xing    },
660f9900dd0SZhengjun Xing    {
661f9900dd0SZhengjun Xing        "BriefDescription": "Cycles total of 1 uop is executed on all ports and Reservation Station was not empty.",
662f9900dd0SZhengjun Xing        "EventCode": "0xa6",
663f9900dd0SZhengjun Xing        "EventName": "EXE_ACTIVITY.1_PORTS_UTIL",
664*4c12f41aSZhengjun Xing        "PublicDescription": "Counts cycles during which a total of 1 uop was executed on all ports and Reservation Station (RS) was not empty.",
665f9900dd0SZhengjun Xing        "SampleAfterValue": "2000003",
666f9900dd0SZhengjun Xing        "UMask": "0x2",
667f9900dd0SZhengjun Xing        "Unit": "cpu_core"
668f9900dd0SZhengjun Xing    },
669f9900dd0SZhengjun Xing    {
670f9900dd0SZhengjun Xing        "BriefDescription": "Cycles total of 2 uops are executed on all ports and Reservation Station was not empty.",
671f9900dd0SZhengjun Xing        "EventCode": "0xa6",
672f9900dd0SZhengjun Xing        "EventName": "EXE_ACTIVITY.2_PORTS_UTIL",
673*4c12f41aSZhengjun Xing        "PublicDescription": "Counts cycles during which a total of 2 uops were executed on all ports and Reservation Station (RS) was not empty.",
674f9900dd0SZhengjun Xing        "SampleAfterValue": "2000003",
675f9900dd0SZhengjun Xing        "UMask": "0x4",
676f9900dd0SZhengjun Xing        "Unit": "cpu_core"
677f9900dd0SZhengjun Xing    },
678f9900dd0SZhengjun Xing    {
679f9900dd0SZhengjun Xing        "BriefDescription": "Cycles total of 3 uops are executed on all ports and Reservation Station was not empty.",
680f9900dd0SZhengjun Xing        "EventCode": "0xa6",
681f9900dd0SZhengjun Xing        "EventName": "EXE_ACTIVITY.3_PORTS_UTIL",
682*4c12f41aSZhengjun Xing        "PublicDescription": "Cycles total of 3 uops are executed on all ports and Reservation Station (RS) was not empty.",
683f9900dd0SZhengjun Xing        "SampleAfterValue": "2000003",
684f9900dd0SZhengjun Xing        "UMask": "0x8",
685f9900dd0SZhengjun Xing        "Unit": "cpu_core"
686f9900dd0SZhengjun Xing    },
687f9900dd0SZhengjun Xing    {
688f9900dd0SZhengjun Xing        "BriefDescription": "Cycles total of 4 uops are executed on all ports and Reservation Station was not empty.",
689f9900dd0SZhengjun Xing        "EventCode": "0xa6",
690f9900dd0SZhengjun Xing        "EventName": "EXE_ACTIVITY.4_PORTS_UTIL",
691*4c12f41aSZhengjun Xing        "PublicDescription": "Cycles total of 4 uops are executed on all ports and Reservation Station (RS) was not empty.",
692f9900dd0SZhengjun Xing        "SampleAfterValue": "2000003",
693f9900dd0SZhengjun Xing        "UMask": "0x10",
694f9900dd0SZhengjun Xing        "Unit": "cpu_core"
695f9900dd0SZhengjun Xing    },
696f9900dd0SZhengjun Xing    {
697f9900dd0SZhengjun Xing        "BriefDescription": "Execution stalls while memory subsystem has an outstanding load.",
698f9900dd0SZhengjun Xing        "CounterMask": "5",
699f9900dd0SZhengjun Xing        "EventCode": "0xa6",
700f9900dd0SZhengjun Xing        "EventName": "EXE_ACTIVITY.BOUND_ON_LOADS",
701f9900dd0SZhengjun Xing        "SampleAfterValue": "2000003",
702f9900dd0SZhengjun Xing        "UMask": "0x21",
703f9900dd0SZhengjun Xing        "Unit": "cpu_core"
704f9900dd0SZhengjun Xing    },
705f9900dd0SZhengjun Xing    {
706f9900dd0SZhengjun Xing        "BriefDescription": "Cycles where the Store Buffer was full and no loads caused an execution stall.",
707f9900dd0SZhengjun Xing        "CounterMask": "2",
708f9900dd0SZhengjun Xing        "EventCode": "0xa6",
709f9900dd0SZhengjun Xing        "EventName": "EXE_ACTIVITY.BOUND_ON_STORES",
710*4c12f41aSZhengjun Xing        "PublicDescription": "Counts cycles where the Store Buffer was full and no loads caused an execution stall.",
711f9900dd0SZhengjun Xing        "SampleAfterValue": "1000003",
712f9900dd0SZhengjun Xing        "UMask": "0x40",
713f9900dd0SZhengjun Xing        "Unit": "cpu_core"
714f9900dd0SZhengjun Xing    },
715f9900dd0SZhengjun Xing    {
7165fa2481cSZhengjun Xing        "BriefDescription": "Cycles no uop executed while RS was not empty, the SB was not full and there was no outstanding load.",
7175fa2481cSZhengjun Xing        "EventCode": "0xa6",
7185fa2481cSZhengjun Xing        "EventName": "EXE_ACTIVITY.EXE_BOUND_0_PORTS",
719*4c12f41aSZhengjun Xing        "PublicDescription": "Number of cycles total of 0 uops executed on all ports, Reservation Station (RS) was not empty, the Store Buffer (SB) was not full and there was no outstanding load.",
7205fa2481cSZhengjun Xing        "SampleAfterValue": "1000003",
7215fa2481cSZhengjun Xing        "UMask": "0x80",
7225fa2481cSZhengjun Xing        "Unit": "cpu_core"
7235fa2481cSZhengjun Xing    },
7245fa2481cSZhengjun Xing    {
725f9900dd0SZhengjun Xing        "BriefDescription": "Instruction decoders utilized in a cycle",
726f9900dd0SZhengjun Xing        "EventCode": "0x75",
727f9900dd0SZhengjun Xing        "EventName": "INST_DECODED.DECODERS",
728*4c12f41aSZhengjun Xing        "PublicDescription": "Number of decoders utilized in a cycle when the MITE (legacy decode pipeline) fetches instructions.",
729f9900dd0SZhengjun Xing        "SampleAfterValue": "2000003",
730f9900dd0SZhengjun Xing        "UMask": "0x1",
731f9900dd0SZhengjun Xing        "Unit": "cpu_core"
732f9900dd0SZhengjun Xing    },
733f9900dd0SZhengjun Xing    {
734*4c12f41aSZhengjun Xing        "BriefDescription": "Counts the total number of instructions retired. (Fixed event)",
735*4c12f41aSZhengjun Xing        "EventName": "INST_RETIRED.ANY",
736*4c12f41aSZhengjun Xing        "PEBS": "1",
737*4c12f41aSZhengjun Xing        "PublicDescription": "Counts the total number of instructions that retired. For instructions that consist of multiple uops, this event counts the retirement of the last uop of the instruction. This event continues counting during hardware interrupts, traps, and inside interrupt handlers. This event uses fixed counter 0.",
738*4c12f41aSZhengjun Xing        "SampleAfterValue": "2000003",
739*4c12f41aSZhengjun Xing        "UMask": "0x1",
740*4c12f41aSZhengjun Xing        "Unit": "cpu_atom"
741*4c12f41aSZhengjun Xing    },
742*4c12f41aSZhengjun Xing    {
743f9900dd0SZhengjun Xing        "BriefDescription": "Number of instructions retired. Fixed Counter - architectural event",
744f9900dd0SZhengjun Xing        "EventName": "INST_RETIRED.ANY",
745f9900dd0SZhengjun Xing        "PEBS": "1",
746*4c12f41aSZhengjun Xing        "PublicDescription": "Counts the number of X86 instructions retired - an Architectural PerfMon event. Counting continues during hardware interrupts, traps, and inside interrupt handlers. Notes: INST_RETIRED.ANY is counted by a designated fixed counter freeing up programmable counters to count other events. INST_RETIRED.ANY_P is counted by a programmable counter.",
747f9900dd0SZhengjun Xing        "SampleAfterValue": "2000003",
748f9900dd0SZhengjun Xing        "UMask": "0x1",
749f9900dd0SZhengjun Xing        "Unit": "cpu_core"
750f9900dd0SZhengjun Xing    },
751f9900dd0SZhengjun Xing    {
752*4c12f41aSZhengjun Xing        "BriefDescription": "Counts the total number of instructions retired.",
753f9900dd0SZhengjun Xing        "EventCode": "0xc0",
754f9900dd0SZhengjun Xing        "EventName": "INST_RETIRED.ANY_P",
755f9900dd0SZhengjun Xing        "PEBS": "1",
756*4c12f41aSZhengjun Xing        "PublicDescription": "Counts the total number of instructions that retired. For instructions that consist of multiple uops, this event counts the retirement of the last uop of the instruction. This event continues counting during hardware interrupts, traps, and inside interrupt handlers. This event uses a programmable general purpose performance counter.",
757*4c12f41aSZhengjun Xing        "SampleAfterValue": "2000003",
758*4c12f41aSZhengjun Xing        "Unit": "cpu_atom"
759*4c12f41aSZhengjun Xing    },
760*4c12f41aSZhengjun Xing    {
761*4c12f41aSZhengjun Xing        "BriefDescription": "Number of instructions retired. General Counter - architectural event",
762*4c12f41aSZhengjun Xing        "EventCode": "0xc0",
763*4c12f41aSZhengjun Xing        "EventName": "INST_RETIRED.ANY_P",
764*4c12f41aSZhengjun Xing        "PEBS": "1",
765*4c12f41aSZhengjun Xing        "PublicDescription": "Counts the number of X86 instructions retired - an Architectural PerfMon event. Counting continues during hardware interrupts, traps, and inside interrupt handlers. Notes: INST_RETIRED.ANY is counted by a designated fixed counter freeing up programmable counters to count other events. INST_RETIRED.ANY_P is counted by a programmable counter.",
766f9900dd0SZhengjun Xing        "SampleAfterValue": "2000003",
767f9900dd0SZhengjun Xing        "Unit": "cpu_core"
768f9900dd0SZhengjun Xing    },
769f9900dd0SZhengjun Xing    {
7705fa2481cSZhengjun Xing        "BriefDescription": "INST_RETIRED.MACRO_FUSED",
771f9900dd0SZhengjun Xing        "EventCode": "0xc0",
772f9900dd0SZhengjun Xing        "EventName": "INST_RETIRED.MACRO_FUSED",
773f9900dd0SZhengjun Xing        "SampleAfterValue": "2000003",
774f9900dd0SZhengjun Xing        "UMask": "0x10",
775f9900dd0SZhengjun Xing        "Unit": "cpu_core"
776f9900dd0SZhengjun Xing    },
777f9900dd0SZhengjun Xing    {
778a95ab294SIan Rogers        "BriefDescription": "Retired NOP instructions.",
779f9900dd0SZhengjun Xing        "EventCode": "0xc0",
780f9900dd0SZhengjun Xing        "EventName": "INST_RETIRED.NOP",
781*4c12f41aSZhengjun Xing        "PublicDescription": "Counts all retired NOP or ENDBR32/64 instructions",
782f9900dd0SZhengjun Xing        "SampleAfterValue": "2000003",
783f9900dd0SZhengjun Xing        "UMask": "0x2",
784f9900dd0SZhengjun Xing        "Unit": "cpu_core"
785f9900dd0SZhengjun Xing    },
786f9900dd0SZhengjun Xing    {
787f9900dd0SZhengjun Xing        "BriefDescription": "Precise instruction retired with PEBS precise-distribution",
788f9900dd0SZhengjun Xing        "EventName": "INST_RETIRED.PREC_DIST",
789f9900dd0SZhengjun Xing        "PEBS": "1",
790*4c12f41aSZhengjun Xing        "PublicDescription": "A version of INST_RETIRED that allows for a precise distribution of samples across instructions retired. It utilizes the Precise Distribution of Instructions Retired (PDIR++) feature to fix bias in how retired instructions get sampled. Use on Fixed Counter 0.",
791f9900dd0SZhengjun Xing        "SampleAfterValue": "2000003",
792f9900dd0SZhengjun Xing        "UMask": "0x1",
793f9900dd0SZhengjun Xing        "Unit": "cpu_core"
794f9900dd0SZhengjun Xing    },
795f9900dd0SZhengjun Xing    {
7965fa2481cSZhengjun Xing        "BriefDescription": "INST_RETIRED.REP_ITERATION",
797f9900dd0SZhengjun Xing        "EventCode": "0xc0",
798f9900dd0SZhengjun Xing        "EventName": "INST_RETIRED.REP_ITERATION",
799f9900dd0SZhengjun Xing        "SampleAfterValue": "2000003",
800f9900dd0SZhengjun Xing        "UMask": "0x8",
801f9900dd0SZhengjun Xing        "Unit": "cpu_core"
802f9900dd0SZhengjun Xing    },
803f9900dd0SZhengjun Xing    {
804f9900dd0SZhengjun Xing        "BriefDescription": "Counts cycles after recovery from a branch misprediction or machine clear till the first uop is issued from the resteered path.",
805f9900dd0SZhengjun Xing        "EventCode": "0xad",
806f9900dd0SZhengjun Xing        "EventName": "INT_MISC.CLEAR_RESTEER_CYCLES",
807*4c12f41aSZhengjun Xing        "PublicDescription": "Cycles after recovery from a branch misprediction or machine clear till the first uop is issued from the resteered path.",
808f9900dd0SZhengjun Xing        "SampleAfterValue": "500009",
809f9900dd0SZhengjun Xing        "UMask": "0x80",
810f9900dd0SZhengjun Xing        "Unit": "cpu_core"
811f9900dd0SZhengjun Xing    },
812f9900dd0SZhengjun Xing    {
813f9900dd0SZhengjun Xing        "BriefDescription": "Core cycles the allocator was stalled due to recovery from earlier clear event for this thread",
814f9900dd0SZhengjun Xing        "EventCode": "0xad",
815f9900dd0SZhengjun Xing        "EventName": "INT_MISC.RECOVERY_CYCLES",
816*4c12f41aSZhengjun Xing        "PublicDescription": "Counts core cycles when the Resource allocator was stalled due to recovery from an earlier branch misprediction or machine clear event.",
817f9900dd0SZhengjun Xing        "SampleAfterValue": "500009",
818f9900dd0SZhengjun Xing        "UMask": "0x1",
819f9900dd0SZhengjun Xing        "Unit": "cpu_core"
820f9900dd0SZhengjun Xing    },
821f9900dd0SZhengjun Xing    {
8225fa2481cSZhengjun Xing        "BriefDescription": "INT_MISC.UNKNOWN_BRANCH_CYCLES",
823f9900dd0SZhengjun Xing        "EventCode": "0xad",
824f9900dd0SZhengjun Xing        "EventName": "INT_MISC.UNKNOWN_BRANCH_CYCLES",
825f9900dd0SZhengjun Xing        "MSRIndex": "0x3F7",
826f9900dd0SZhengjun Xing        "MSRValue": "0x7",
827f9900dd0SZhengjun Xing        "SampleAfterValue": "1000003",
828f9900dd0SZhengjun Xing        "UMask": "0x40",
829f9900dd0SZhengjun Xing        "Unit": "cpu_core"
830f9900dd0SZhengjun Xing    },
831f9900dd0SZhengjun Xing    {
832f9900dd0SZhengjun Xing        "BriefDescription": "TMA slots where uops got dropped",
833f9900dd0SZhengjun Xing        "EventCode": "0xad",
834f9900dd0SZhengjun Xing        "EventName": "INT_MISC.UOP_DROPPING",
835*4c12f41aSZhengjun Xing        "PublicDescription": "Estimated number of Top-down Microarchitecture Analysis slots that got dropped due to non front-end reasons",
836f9900dd0SZhengjun Xing        "SampleAfterValue": "1000003",
837f9900dd0SZhengjun Xing        "UMask": "0x10",
838f9900dd0SZhengjun Xing        "Unit": "cpu_core"
839f9900dd0SZhengjun Xing    },
840f9900dd0SZhengjun Xing    {
8415fa2481cSZhengjun Xing        "BriefDescription": "INT_VEC_RETIRED.128BIT",
842f9900dd0SZhengjun Xing        "EventCode": "0xe7",
843f9900dd0SZhengjun Xing        "EventName": "INT_VEC_RETIRED.128BIT",
844f9900dd0SZhengjun Xing        "SampleAfterValue": "1000003",
845f9900dd0SZhengjun Xing        "UMask": "0x13",
846f9900dd0SZhengjun Xing        "Unit": "cpu_core"
847f9900dd0SZhengjun Xing    },
848f9900dd0SZhengjun Xing    {
8495fa2481cSZhengjun Xing        "BriefDescription": "INT_VEC_RETIRED.256BIT",
850f9900dd0SZhengjun Xing        "EventCode": "0xe7",
851f9900dd0SZhengjun Xing        "EventName": "INT_VEC_RETIRED.256BIT",
852f9900dd0SZhengjun Xing        "SampleAfterValue": "1000003",
853f9900dd0SZhengjun Xing        "UMask": "0xac",
854f9900dd0SZhengjun Xing        "Unit": "cpu_core"
855f9900dd0SZhengjun Xing    },
856f9900dd0SZhengjun Xing    {
857f9900dd0SZhengjun Xing        "BriefDescription": "integer ADD, SUB, SAD 128-bit vector instructions.",
858f9900dd0SZhengjun Xing        "EventCode": "0xe7",
859f9900dd0SZhengjun Xing        "EventName": "INT_VEC_RETIRED.ADD_128",
860*4c12f41aSZhengjun Xing        "PublicDescription": "Number of retired integer ADD/SUB (regular or horizontal), SAD 128-bit vector instructions.",
861f9900dd0SZhengjun Xing        "SampleAfterValue": "1000003",
862f9900dd0SZhengjun Xing        "UMask": "0x3",
863f9900dd0SZhengjun Xing        "Unit": "cpu_core"
864f9900dd0SZhengjun Xing    },
865f9900dd0SZhengjun Xing    {
866f9900dd0SZhengjun Xing        "BriefDescription": "integer ADD, SUB, SAD 256-bit vector instructions.",
867f9900dd0SZhengjun Xing        "EventCode": "0xe7",
868f9900dd0SZhengjun Xing        "EventName": "INT_VEC_RETIRED.ADD_256",
869*4c12f41aSZhengjun Xing        "PublicDescription": "Number of retired integer ADD/SUB (regular or horizontal), SAD 256-bit vector instructions.",
870f9900dd0SZhengjun Xing        "SampleAfterValue": "1000003",
871f9900dd0SZhengjun Xing        "UMask": "0xc",
872f9900dd0SZhengjun Xing        "Unit": "cpu_core"
873f9900dd0SZhengjun Xing    },
874f9900dd0SZhengjun Xing    {
8755fa2481cSZhengjun Xing        "BriefDescription": "INT_VEC_RETIRED.MUL_256",
876f9900dd0SZhengjun Xing        "EventCode": "0xe7",
877f9900dd0SZhengjun Xing        "EventName": "INT_VEC_RETIRED.MUL_256",
878f9900dd0SZhengjun Xing        "SampleAfterValue": "1000003",
879f9900dd0SZhengjun Xing        "UMask": "0x80",
880f9900dd0SZhengjun Xing        "Unit": "cpu_core"
881f9900dd0SZhengjun Xing    },
882f9900dd0SZhengjun Xing    {
8835fa2481cSZhengjun Xing        "BriefDescription": "INT_VEC_RETIRED.SHUFFLES",
884f9900dd0SZhengjun Xing        "EventCode": "0xe7",
885f9900dd0SZhengjun Xing        "EventName": "INT_VEC_RETIRED.SHUFFLES",
886f9900dd0SZhengjun Xing        "SampleAfterValue": "1000003",
887f9900dd0SZhengjun Xing        "UMask": "0x40",
888f9900dd0SZhengjun Xing        "Unit": "cpu_core"
889f9900dd0SZhengjun Xing    },
890f9900dd0SZhengjun Xing    {
8915fa2481cSZhengjun Xing        "BriefDescription": "INT_VEC_RETIRED.VNNI_128",
892f9900dd0SZhengjun Xing        "EventCode": "0xe7",
893f9900dd0SZhengjun Xing        "EventName": "INT_VEC_RETIRED.VNNI_128",
894f9900dd0SZhengjun Xing        "SampleAfterValue": "1000003",
895f9900dd0SZhengjun Xing        "UMask": "0x10",
896f9900dd0SZhengjun Xing        "Unit": "cpu_core"
897f9900dd0SZhengjun Xing    },
898f9900dd0SZhengjun Xing    {
8995fa2481cSZhengjun Xing        "BriefDescription": "INT_VEC_RETIRED.VNNI_256",
900f9900dd0SZhengjun Xing        "EventCode": "0xe7",
901f9900dd0SZhengjun Xing        "EventName": "INT_VEC_RETIRED.VNNI_256",
902f9900dd0SZhengjun Xing        "SampleAfterValue": "1000003",
903f9900dd0SZhengjun Xing        "UMask": "0x20",
904f9900dd0SZhengjun Xing        "Unit": "cpu_core"
905f9900dd0SZhengjun Xing    },
906f9900dd0SZhengjun Xing    {
907*4c12f41aSZhengjun Xing        "BriefDescription": "This event is deprecated. Refer to new event LD_BLOCKS.ADDRESS_ALIAS",
908*4c12f41aSZhengjun Xing        "Deprecated": "1",
909*4c12f41aSZhengjun Xing        "EventCode": "0x03",
910*4c12f41aSZhengjun Xing        "EventName": "LD_BLOCKS.4K_ALIAS",
911*4c12f41aSZhengjun Xing        "PEBS": "1",
912*4c12f41aSZhengjun Xing        "SampleAfterValue": "1000003",
913*4c12f41aSZhengjun Xing        "UMask": "0x4",
914*4c12f41aSZhengjun Xing        "Unit": "cpu_atom"
915*4c12f41aSZhengjun Xing    },
916*4c12f41aSZhengjun Xing    {
917*4c12f41aSZhengjun Xing        "BriefDescription": "Counts the number of retired loads that are blocked because it initially appears to be store forward blocked, but subsequently is shown not to be blocked based on 4K alias check.",
918f9900dd0SZhengjun Xing        "EventCode": "0x03",
919f9900dd0SZhengjun Xing        "EventName": "LD_BLOCKS.ADDRESS_ALIAS",
920*4c12f41aSZhengjun Xing        "PEBS": "1",
921*4c12f41aSZhengjun Xing        "SampleAfterValue": "1000003",
922*4c12f41aSZhengjun Xing        "UMask": "0x4",
923*4c12f41aSZhengjun Xing        "Unit": "cpu_atom"
924*4c12f41aSZhengjun Xing    },
925*4c12f41aSZhengjun Xing    {
926*4c12f41aSZhengjun Xing        "BriefDescription": "False dependencies in MOB due to partial compare on address.",
927*4c12f41aSZhengjun Xing        "EventCode": "0x03",
928*4c12f41aSZhengjun Xing        "EventName": "LD_BLOCKS.ADDRESS_ALIAS",
929*4c12f41aSZhengjun Xing        "PublicDescription": "Counts the number of times a load got blocked due to false dependencies in MOB due to partial compare on address.",
930f9900dd0SZhengjun Xing        "SampleAfterValue": "100003",
931f9900dd0SZhengjun Xing        "UMask": "0x4",
932f9900dd0SZhengjun Xing        "Unit": "cpu_core"
933f9900dd0SZhengjun Xing    },
934f9900dd0SZhengjun Xing    {
935*4c12f41aSZhengjun Xing        "BriefDescription": "Counts the number of retired loads that are blocked because its address exactly matches an older store whose data is not ready.",
936*4c12f41aSZhengjun Xing        "EventCode": "0x03",
937*4c12f41aSZhengjun Xing        "EventName": "LD_BLOCKS.DATA_UNKNOWN",
938*4c12f41aSZhengjun Xing        "PEBS": "1",
939*4c12f41aSZhengjun Xing        "SampleAfterValue": "1000003",
940*4c12f41aSZhengjun Xing        "UMask": "0x1",
941*4c12f41aSZhengjun Xing        "Unit": "cpu_atom"
942*4c12f41aSZhengjun Xing    },
943*4c12f41aSZhengjun Xing    {
944f9900dd0SZhengjun Xing        "BriefDescription": "The number of times that split load operations are temporarily blocked because all resources for handling the split accesses are in use.",
945f9900dd0SZhengjun Xing        "EventCode": "0x03",
946f9900dd0SZhengjun Xing        "EventName": "LD_BLOCKS.NO_SR",
947*4c12f41aSZhengjun Xing        "PublicDescription": "Counts the number of times that split load operations are temporarily blocked because all resources for handling the split accesses are in use.",
948f9900dd0SZhengjun Xing        "SampleAfterValue": "100003",
949f9900dd0SZhengjun Xing        "UMask": "0x88",
950f9900dd0SZhengjun Xing        "Unit": "cpu_core"
951f9900dd0SZhengjun Xing    },
952f9900dd0SZhengjun Xing    {
953f9900dd0SZhengjun Xing        "BriefDescription": "Loads blocked due to overlapping with a preceding store that cannot be forwarded.",
954f9900dd0SZhengjun Xing        "EventCode": "0x03",
955f9900dd0SZhengjun Xing        "EventName": "LD_BLOCKS.STORE_FORWARD",
956*4c12f41aSZhengjun Xing        "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.",
957f9900dd0SZhengjun Xing        "SampleAfterValue": "100003",
958f9900dd0SZhengjun Xing        "UMask": "0x82",
959f9900dd0SZhengjun Xing        "Unit": "cpu_core"
960f9900dd0SZhengjun Xing    },
961f9900dd0SZhengjun Xing    {
962f9900dd0SZhengjun Xing        "BriefDescription": "Counts the number of demand load dispatches that hit L1D fill buffer (FB) allocated for software prefetch.",
963f9900dd0SZhengjun Xing        "EventCode": "0x4c",
964f9900dd0SZhengjun Xing        "EventName": "LOAD_HIT_PREFETCH.SWPF",
965*4c12f41aSZhengjun Xing        "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.",
966f9900dd0SZhengjun Xing        "SampleAfterValue": "100003",
967f9900dd0SZhengjun Xing        "UMask": "0x1",
968f9900dd0SZhengjun Xing        "Unit": "cpu_core"
969f9900dd0SZhengjun Xing    },
970f9900dd0SZhengjun Xing    {
971f9900dd0SZhengjun Xing        "BriefDescription": "Cycles Uops delivered by the LSD, but didn't come from the decoder.",
972f9900dd0SZhengjun Xing        "CounterMask": "1",
973f9900dd0SZhengjun Xing        "EventCode": "0xa8",
974f9900dd0SZhengjun Xing        "EventName": "LSD.CYCLES_ACTIVE",
975*4c12f41aSZhengjun Xing        "PublicDescription": "Counts the cycles when at least one uop is delivered by the LSD (Loop-stream detector).",
976f9900dd0SZhengjun Xing        "SampleAfterValue": "2000003",
977f9900dd0SZhengjun Xing        "UMask": "0x1",
978f9900dd0SZhengjun Xing        "Unit": "cpu_core"
979f9900dd0SZhengjun Xing    },
980f9900dd0SZhengjun Xing    {
981f9900dd0SZhengjun Xing        "BriefDescription": "Cycles optimal number of Uops delivered by the LSD, but did not come from the decoder.",
982f9900dd0SZhengjun Xing        "CounterMask": "6",
983f9900dd0SZhengjun Xing        "EventCode": "0xa8",
984f9900dd0SZhengjun Xing        "EventName": "LSD.CYCLES_OK",
985*4c12f41aSZhengjun Xing        "PublicDescription": "Counts the cycles when optimal number of uops is delivered by the LSD (Loop-stream detector).",
986f9900dd0SZhengjun Xing        "SampleAfterValue": "2000003",
987f9900dd0SZhengjun Xing        "UMask": "0x1",
988f9900dd0SZhengjun Xing        "Unit": "cpu_core"
989f9900dd0SZhengjun Xing    },
990f9900dd0SZhengjun Xing    {
991f9900dd0SZhengjun Xing        "BriefDescription": "Number of Uops delivered by the LSD.",
992f9900dd0SZhengjun Xing        "EventCode": "0xa8",
993f9900dd0SZhengjun Xing        "EventName": "LSD.UOPS",
994*4c12f41aSZhengjun Xing        "PublicDescription": "Counts the number of uops delivered to the back-end by the LSD(Loop Stream Detector).",
995f9900dd0SZhengjun Xing        "SampleAfterValue": "2000003",
996f9900dd0SZhengjun Xing        "UMask": "0x1",
997f9900dd0SZhengjun Xing        "Unit": "cpu_core"
998f9900dd0SZhengjun Xing    },
999f9900dd0SZhengjun Xing    {
1000f9900dd0SZhengjun Xing        "BriefDescription": "Number of machine clears (nukes) of any type.",
1001f9900dd0SZhengjun Xing        "CounterMask": "1",
1002f9900dd0SZhengjun Xing        "EdgeDetect": "1",
1003f9900dd0SZhengjun Xing        "EventCode": "0xc3",
1004f9900dd0SZhengjun Xing        "EventName": "MACHINE_CLEARS.COUNT",
1005*4c12f41aSZhengjun Xing        "PublicDescription": "Counts the number of machine clears (nukes) of any type.",
1006f9900dd0SZhengjun Xing        "SampleAfterValue": "100003",
1007f9900dd0SZhengjun Xing        "UMask": "0x1",
1008f9900dd0SZhengjun Xing        "Unit": "cpu_core"
1009f9900dd0SZhengjun Xing    },
1010f9900dd0SZhengjun Xing    {
1011*4c12f41aSZhengjun Xing        "BriefDescription": "Counts the number of machine clears due to memory ordering in which an internal load passes an older store within the same CPU.",
1012*4c12f41aSZhengjun Xing        "EventCode": "0xc3",
1013*4c12f41aSZhengjun Xing        "EventName": "MACHINE_CLEARS.DISAMBIGUATION",
1014*4c12f41aSZhengjun Xing        "SampleAfterValue": "20003",
1015*4c12f41aSZhengjun Xing        "UMask": "0x8",
1016*4c12f41aSZhengjun Xing        "Unit": "cpu_atom"
1017*4c12f41aSZhengjun Xing    },
1018*4c12f41aSZhengjun Xing    {
1019*4c12f41aSZhengjun Xing        "BriefDescription": "Counts the number of machines clears due to memory renaming.",
1020*4c12f41aSZhengjun Xing        "EventCode": "0xc3",
1021*4c12f41aSZhengjun Xing        "EventName": "MACHINE_CLEARS.MRN_NUKE",
1022*4c12f41aSZhengjun Xing        "SampleAfterValue": "1000003",
1023*4c12f41aSZhengjun Xing        "UMask": "0x80",
1024*4c12f41aSZhengjun Xing        "Unit": "cpu_atom"
1025*4c12f41aSZhengjun Xing    },
1026*4c12f41aSZhengjun Xing    {
1027*4c12f41aSZhengjun Xing        "BriefDescription": "Counts the number of machine clears due to a page fault.  Counts both I-Side and D-Side (Loads/Stores) page faults.  A page fault occurs when either the page is not present, or an access violation occurs.",
1028*4c12f41aSZhengjun Xing        "EventCode": "0xc3",
1029*4c12f41aSZhengjun Xing        "EventName": "MACHINE_CLEARS.PAGE_FAULT",
1030*4c12f41aSZhengjun Xing        "SampleAfterValue": "20003",
1031*4c12f41aSZhengjun Xing        "UMask": "0x20",
1032*4c12f41aSZhengjun Xing        "Unit": "cpu_atom"
1033*4c12f41aSZhengjun Xing    },
1034*4c12f41aSZhengjun Xing    {
1035*4c12f41aSZhengjun Xing        "BriefDescription": "Counts the number of machine clears that flush the pipeline and restart the machine with the use of microcode due to SMC, MEMORY_ORDERING, FP_ASSISTS, PAGE_FAULT, DISAMBIGUATION, and FPC_VIRTUAL_TRAP.",
1036*4c12f41aSZhengjun Xing        "EventCode": "0xc3",
1037*4c12f41aSZhengjun Xing        "EventName": "MACHINE_CLEARS.SLOW",
1038*4c12f41aSZhengjun Xing        "SampleAfterValue": "20003",
1039*4c12f41aSZhengjun Xing        "UMask": "0x6f",
1040*4c12f41aSZhengjun Xing        "Unit": "cpu_atom"
1041*4c12f41aSZhengjun Xing    },
1042*4c12f41aSZhengjun Xing    {
1043*4c12f41aSZhengjun Xing        "BriefDescription": "Counts the number of machine clears due to program modifying data (self modifying code) within 1K of a recently fetched code page.",
1044f9900dd0SZhengjun Xing        "EventCode": "0xc3",
1045f9900dd0SZhengjun Xing        "EventName": "MACHINE_CLEARS.SMC",
1046*4c12f41aSZhengjun Xing        "SampleAfterValue": "20003",
1047*4c12f41aSZhengjun Xing        "UMask": "0x1",
1048*4c12f41aSZhengjun Xing        "Unit": "cpu_atom"
1049*4c12f41aSZhengjun Xing    },
1050*4c12f41aSZhengjun Xing    {
1051*4c12f41aSZhengjun Xing        "BriefDescription": "Self-modifying code (SMC) detected.",
1052*4c12f41aSZhengjun Xing        "EventCode": "0xc3",
1053*4c12f41aSZhengjun Xing        "EventName": "MACHINE_CLEARS.SMC",
1054*4c12f41aSZhengjun Xing        "PublicDescription": "Counts self-modifying code (SMC) detected, which causes a machine clear.",
1055f9900dd0SZhengjun Xing        "SampleAfterValue": "100003",
1056f9900dd0SZhengjun Xing        "UMask": "0x4",
1057f9900dd0SZhengjun Xing        "Unit": "cpu_core"
1058f9900dd0SZhengjun Xing    },
1059f9900dd0SZhengjun Xing    {
10605fa2481cSZhengjun Xing        "BriefDescription": "MISC2_RETIRED.LFENCE",
1061f9900dd0SZhengjun Xing        "EventCode": "0xe0",
1062f9900dd0SZhengjun Xing        "EventName": "MISC2_RETIRED.LFENCE",
1063f9900dd0SZhengjun Xing        "SampleAfterValue": "400009",
1064f9900dd0SZhengjun Xing        "UMask": "0x20",
1065f9900dd0SZhengjun Xing        "Unit": "cpu_core"
1066f9900dd0SZhengjun Xing    },
1067f9900dd0SZhengjun Xing    {
1068f9900dd0SZhengjun Xing        "BriefDescription": "Increments whenever there is an update to the LBR array.",
1069f9900dd0SZhengjun Xing        "EventCode": "0xcc",
1070f9900dd0SZhengjun Xing        "EventName": "MISC_RETIRED.LBR_INSERTS",
1071*4c12f41aSZhengjun Xing        "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.",
1072f9900dd0SZhengjun Xing        "SampleAfterValue": "100003",
1073f9900dd0SZhengjun Xing        "UMask": "0x20",
1074f9900dd0SZhengjun Xing        "Unit": "cpu_core"
1075f9900dd0SZhengjun Xing    },
1076f9900dd0SZhengjun Xing    {
1077f9900dd0SZhengjun Xing        "BriefDescription": "Cycles stalled due to no store buffers available. (not including draining form sync).",
1078f9900dd0SZhengjun Xing        "EventCode": "0xa2",
1079f9900dd0SZhengjun Xing        "EventName": "RESOURCE_STALLS.SB",
1080*4c12f41aSZhengjun Xing        "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.",
1081f9900dd0SZhengjun Xing        "SampleAfterValue": "100003",
1082f9900dd0SZhengjun Xing        "UMask": "0x8",
1083f9900dd0SZhengjun Xing        "Unit": "cpu_core"
1084f9900dd0SZhengjun Xing    },
1085f9900dd0SZhengjun Xing    {
1086f9900dd0SZhengjun Xing        "BriefDescription": "Counts cycles where the pipeline is stalled due to serializing operations.",
1087f9900dd0SZhengjun Xing        "EventCode": "0xa2",
1088f9900dd0SZhengjun Xing        "EventName": "RESOURCE_STALLS.SCOREBOARD",
1089f9900dd0SZhengjun Xing        "SampleAfterValue": "100003",
1090f9900dd0SZhengjun Xing        "UMask": "0x2",
1091f9900dd0SZhengjun Xing        "Unit": "cpu_core"
1092f9900dd0SZhengjun Xing    },
1093f9900dd0SZhengjun Xing    {
1094*4c12f41aSZhengjun Xing        "BriefDescription": "Counts the number of issue slots not consumed by the backend due to a micro-sequencer (MS) scoreboard, which stalls the front-end from issuing from the UROM until a specified older uop retires.",
1095*4c12f41aSZhengjun Xing        "EventCode": "0x75",
1096*4c12f41aSZhengjun Xing        "EventName": "SERIALIZATION.NON_C01_MS_SCB",
1097*4c12f41aSZhengjun Xing        "PublicDescription": "Counts the number of issue slots not consumed by the backend due to a micro-sequencer (MS) scoreboard, which stalls the front-end from issuing from the UROM until a specified older uop retires. The most commonly executed instruction with an MS scoreboard is PAUSE.",
1098*4c12f41aSZhengjun Xing        "SampleAfterValue": "200003",
1099*4c12f41aSZhengjun Xing        "UMask": "0x2",
1100*4c12f41aSZhengjun Xing        "Unit": "cpu_atom"
1101*4c12f41aSZhengjun Xing    },
1102*4c12f41aSZhengjun Xing    {
1103f9900dd0SZhengjun Xing        "BriefDescription": "TMA slots where no uops were being issued due to lack of back-end resources.",
1104f9900dd0SZhengjun Xing        "EventCode": "0xa4",
1105f9900dd0SZhengjun Xing        "EventName": "TOPDOWN.BACKEND_BOUND_SLOTS",
1106*4c12f41aSZhengjun Xing        "PublicDescription": "Number of slots in TMA method where no micro-operations were being issued from front-end to back-end of the machine due to lack of back-end resources.",
1107f9900dd0SZhengjun Xing        "SampleAfterValue": "10000003",
1108f9900dd0SZhengjun Xing        "UMask": "0x2",
1109f9900dd0SZhengjun Xing        "Unit": "cpu_core"
1110f9900dd0SZhengjun Xing    },
1111f9900dd0SZhengjun Xing    {
1112f9900dd0SZhengjun Xing        "BriefDescription": "TMA slots wasted due to incorrect speculations.",
1113f9900dd0SZhengjun Xing        "EventCode": "0xa4",
1114f9900dd0SZhengjun Xing        "EventName": "TOPDOWN.BAD_SPEC_SLOTS",
1115*4c12f41aSZhengjun Xing        "PublicDescription": "Number of slots of TMA method that were wasted due to incorrect speculation. It covers all types of control-flow or data-related mis-speculations.",
1116f9900dd0SZhengjun Xing        "SampleAfterValue": "10000003",
1117f9900dd0SZhengjun Xing        "UMask": "0x4",
1118f9900dd0SZhengjun Xing        "Unit": "cpu_core"
1119f9900dd0SZhengjun Xing    },
1120f9900dd0SZhengjun Xing    {
1121f9900dd0SZhengjun Xing        "BriefDescription": "TMA slots wasted due to incorrect speculation by branch mispredictions",
1122f9900dd0SZhengjun Xing        "EventCode": "0xa4",
1123f9900dd0SZhengjun Xing        "EventName": "TOPDOWN.BR_MISPREDICT_SLOTS",
1124*4c12f41aSZhengjun Xing        "PublicDescription": "Number of TMA slots that were wasted due to incorrect speculation by (any type of) branch mispredictions. This event estimates number of specualtive operations that were issued but not retired as well as the out-of-order engine recovery past a branch misprediction.",
1125f9900dd0SZhengjun Xing        "SampleAfterValue": "10000003",
1126f9900dd0SZhengjun Xing        "UMask": "0x8",
1127f9900dd0SZhengjun Xing        "Unit": "cpu_core"
1128f9900dd0SZhengjun Xing    },
1129f9900dd0SZhengjun Xing    {
11305fa2481cSZhengjun Xing        "BriefDescription": "TOPDOWN.MEMORY_BOUND_SLOTS",
1131f9900dd0SZhengjun Xing        "EventCode": "0xa4",
1132f9900dd0SZhengjun Xing        "EventName": "TOPDOWN.MEMORY_BOUND_SLOTS",
1133f9900dd0SZhengjun Xing        "SampleAfterValue": "10000003",
1134f9900dd0SZhengjun Xing        "UMask": "0x10",
1135f9900dd0SZhengjun Xing        "Unit": "cpu_core"
1136f9900dd0SZhengjun Xing    },
1137f9900dd0SZhengjun Xing    {
1138f9900dd0SZhengjun Xing        "BriefDescription": "TMA slots available for an unhalted logical processor. Fixed counter - architectural event",
1139f9900dd0SZhengjun Xing        "EventName": "TOPDOWN.SLOTS",
1140*4c12f41aSZhengjun Xing        "PublicDescription": "Number of available slots for an unhalted logical processor. The event increments by machine-width of the narrowest pipeline as employed by the Top-down Microarchitecture Analysis method (TMA). The count is distributed among unhalted logical processors (hyper-threads) who share the same physical core. Software can use this event as the denominator for the top-level metrics of the TMA method. This architectural event is counted on a designated fixed counter (Fixed Counter 3).",
1141f9900dd0SZhengjun Xing        "SampleAfterValue": "10000003",
1142f9900dd0SZhengjun Xing        "UMask": "0x4",
1143f9900dd0SZhengjun Xing        "Unit": "cpu_core"
1144f9900dd0SZhengjun Xing    },
1145f9900dd0SZhengjun Xing    {
1146f9900dd0SZhengjun Xing        "BriefDescription": "TMA slots available for an unhalted logical processor. General counter - architectural event",
1147f9900dd0SZhengjun Xing        "EventCode": "0xa4",
1148f9900dd0SZhengjun Xing        "EventName": "TOPDOWN.SLOTS_P",
1149*4c12f41aSZhengjun Xing        "PublicDescription": "Counts the number of available slots for an unhalted logical processor. The event increments by machine-width of the narrowest pipeline as employed by the Top-down Microarchitecture Analysis method. The count is distributed among unhalted logical processors (hyper-threads) who share the same physical core.",
1150f9900dd0SZhengjun Xing        "SampleAfterValue": "10000003",
1151f9900dd0SZhengjun Xing        "UMask": "0x1",
1152f9900dd0SZhengjun Xing        "Unit": "cpu_core"
1153f9900dd0SZhengjun Xing    },
1154f9900dd0SZhengjun Xing    {
1155*4c12f41aSZhengjun Xing        "BriefDescription": "Counts the total number of issue slots that were not consumed by the backend because allocation is stalled due to a mispredicted jump or a machine clear.",
1156*4c12f41aSZhengjun Xing        "EventCode": "0x73",
1157*4c12f41aSZhengjun Xing        "EventName": "TOPDOWN_BAD_SPECULATION.ALL",
1158*4c12f41aSZhengjun Xing        "PublicDescription": "Counts the total number of issue slots that were not consumed by the backend because allocation is stalled due to a mispredicted jump or a machine clear. Only issue slots wasted due to fast nukes such as memory ordering nukes are counted. Other nukes are not accounted for. Counts all issue slots blocked during this recovery window including relevant microcode flows and while uops are not yet available in the instruction queue (IQ) even if an FE_bound event occurs during this period. Also includes the issue slots that were consumed by the backend but were thrown away because they were younger than the mispredict or machine clear.",
1159*4c12f41aSZhengjun Xing        "SampleAfterValue": "1000003",
1160*4c12f41aSZhengjun Xing        "Unit": "cpu_atom"
1161*4c12f41aSZhengjun Xing    },
1162*4c12f41aSZhengjun Xing    {
1163*4c12f41aSZhengjun Xing        "BriefDescription": "Counts the number of issue slots every cycle that were not consumed by the backend due to fast nukes such as memory ordering and memory disambiguation machine clears.",
1164*4c12f41aSZhengjun Xing        "EventCode": "0x73",
1165*4c12f41aSZhengjun Xing        "EventName": "TOPDOWN_BAD_SPECULATION.FASTNUKE",
1166*4c12f41aSZhengjun Xing        "SampleAfterValue": "1000003",
1167*4c12f41aSZhengjun Xing        "UMask": "0x2",
1168*4c12f41aSZhengjun Xing        "Unit": "cpu_atom"
1169*4c12f41aSZhengjun Xing    },
1170*4c12f41aSZhengjun Xing    {
1171*4c12f41aSZhengjun Xing        "BriefDescription": "Counts the total number of issue slots that were not consumed by the backend because allocation is stalled due to a machine clear (nuke) of any kind including memory ordering and memory disambiguation.",
1172*4c12f41aSZhengjun Xing        "EventCode": "0x73",
1173*4c12f41aSZhengjun Xing        "EventName": "TOPDOWN_BAD_SPECULATION.MACHINE_CLEARS",
1174*4c12f41aSZhengjun Xing        "SampleAfterValue": "1000003",
1175*4c12f41aSZhengjun Xing        "UMask": "0x3",
1176*4c12f41aSZhengjun Xing        "Unit": "cpu_atom"
1177*4c12f41aSZhengjun Xing    },
1178*4c12f41aSZhengjun Xing    {
1179*4c12f41aSZhengjun Xing        "BriefDescription": "Counts the number of issue slots every cycle that were not consumed by the backend due to branch mispredicts.",
1180*4c12f41aSZhengjun Xing        "EventCode": "0x73",
1181*4c12f41aSZhengjun Xing        "EventName": "TOPDOWN_BAD_SPECULATION.MISPREDICT",
1182*4c12f41aSZhengjun Xing        "SampleAfterValue": "1000003",
1183*4c12f41aSZhengjun Xing        "UMask": "0x4",
1184*4c12f41aSZhengjun Xing        "Unit": "cpu_atom"
1185*4c12f41aSZhengjun Xing    },
1186*4c12f41aSZhengjun Xing    {
1187*4c12f41aSZhengjun Xing        "BriefDescription": "Counts the number of issue slots every cycle that were not consumed by the backend due to a machine clear (nuke).",
1188*4c12f41aSZhengjun Xing        "EventCode": "0x73",
1189*4c12f41aSZhengjun Xing        "EventName": "TOPDOWN_BAD_SPECULATION.NUKE",
1190*4c12f41aSZhengjun Xing        "SampleAfterValue": "1000003",
1191*4c12f41aSZhengjun Xing        "UMask": "0x1",
1192*4c12f41aSZhengjun Xing        "Unit": "cpu_atom"
1193*4c12f41aSZhengjun Xing    },
1194*4c12f41aSZhengjun Xing    {
1195*4c12f41aSZhengjun Xing        "BriefDescription": "Counts the total number of issue slots every cycle that were not consumed by the backend due to backend stalls.",
1196*4c12f41aSZhengjun Xing        "EventCode": "0x74",
1197*4c12f41aSZhengjun Xing        "EventName": "TOPDOWN_BE_BOUND.ALL",
1198*4c12f41aSZhengjun Xing        "SampleAfterValue": "1000003",
1199*4c12f41aSZhengjun Xing        "Unit": "cpu_atom"
1200*4c12f41aSZhengjun Xing    },
1201*4c12f41aSZhengjun Xing    {
1202*4c12f41aSZhengjun Xing        "BriefDescription": "Counts the number of issue slots every cycle that were not consumed by the backend due to certain allocation restrictions.",
1203*4c12f41aSZhengjun Xing        "EventCode": "0x74",
1204*4c12f41aSZhengjun Xing        "EventName": "TOPDOWN_BE_BOUND.ALLOC_RESTRICTIONS",
1205*4c12f41aSZhengjun Xing        "SampleAfterValue": "1000003",
1206*4c12f41aSZhengjun Xing        "UMask": "0x1",
1207*4c12f41aSZhengjun Xing        "Unit": "cpu_atom"
1208*4c12f41aSZhengjun Xing    },
1209*4c12f41aSZhengjun Xing    {
1210*4c12f41aSZhengjun Xing        "BriefDescription": "Counts the number of issue slots every cycle that were not consumed by the backend due to memory reservation stalls in which a scheduler is not able to accept uops.",
1211*4c12f41aSZhengjun Xing        "EventCode": "0x74",
1212*4c12f41aSZhengjun Xing        "EventName": "TOPDOWN_BE_BOUND.MEM_SCHEDULER",
1213*4c12f41aSZhengjun Xing        "SampleAfterValue": "1000003",
1214*4c12f41aSZhengjun Xing        "UMask": "0x2",
1215*4c12f41aSZhengjun Xing        "Unit": "cpu_atom"
1216*4c12f41aSZhengjun Xing    },
1217*4c12f41aSZhengjun Xing    {
1218*4c12f41aSZhengjun Xing        "BriefDescription": "Counts the number of issue slots every cycle that were not consumed by the backend due to IEC or FPC RAT stalls, which can be due to FIQ or IEC reservation stalls in which the integer, floating point or SIMD scheduler is not able to accept uops.",
1219*4c12f41aSZhengjun Xing        "EventCode": "0x74",
1220*4c12f41aSZhengjun Xing        "EventName": "TOPDOWN_BE_BOUND.NON_MEM_SCHEDULER",
1221*4c12f41aSZhengjun Xing        "SampleAfterValue": "1000003",
1222*4c12f41aSZhengjun Xing        "UMask": "0x8",
1223*4c12f41aSZhengjun Xing        "Unit": "cpu_atom"
1224*4c12f41aSZhengjun Xing    },
1225*4c12f41aSZhengjun Xing    {
1226*4c12f41aSZhengjun Xing        "BriefDescription": "Counts the number of issue slots every cycle that were not consumed by the backend due to the physical register file unable to accept an entry (marble stalls).",
1227*4c12f41aSZhengjun Xing        "EventCode": "0x74",
1228*4c12f41aSZhengjun Xing        "EventName": "TOPDOWN_BE_BOUND.REGISTER",
1229*4c12f41aSZhengjun Xing        "SampleAfterValue": "1000003",
1230*4c12f41aSZhengjun Xing        "UMask": "0x20",
1231*4c12f41aSZhengjun Xing        "Unit": "cpu_atom"
1232*4c12f41aSZhengjun Xing    },
1233*4c12f41aSZhengjun Xing    {
1234*4c12f41aSZhengjun Xing        "BriefDescription": "Counts the number of issue slots every cycle that were not consumed by the backend due to the reorder buffer being full (ROB stalls).",
1235*4c12f41aSZhengjun Xing        "EventCode": "0x74",
1236*4c12f41aSZhengjun Xing        "EventName": "TOPDOWN_BE_BOUND.REORDER_BUFFER",
1237*4c12f41aSZhengjun Xing        "SampleAfterValue": "1000003",
1238*4c12f41aSZhengjun Xing        "UMask": "0x40",
1239*4c12f41aSZhengjun Xing        "Unit": "cpu_atom"
1240*4c12f41aSZhengjun Xing    },
1241*4c12f41aSZhengjun Xing    {
1242*4c12f41aSZhengjun Xing        "BriefDescription": "Counts the number of issue slots every cycle that were not consumed by the backend due to scoreboards from the instruction queue (IQ), jump execution unit (JEU), or microcode sequencer (MS).",
1243*4c12f41aSZhengjun Xing        "EventCode": "0x74",
1244*4c12f41aSZhengjun Xing        "EventName": "TOPDOWN_BE_BOUND.SERIALIZATION",
1245*4c12f41aSZhengjun Xing        "SampleAfterValue": "1000003",
1246*4c12f41aSZhengjun Xing        "UMask": "0x10",
1247*4c12f41aSZhengjun Xing        "Unit": "cpu_atom"
1248*4c12f41aSZhengjun Xing    },
1249*4c12f41aSZhengjun Xing    {
1250*4c12f41aSZhengjun Xing        "BriefDescription": "Counts the total number of issue slots every cycle that were not consumed by the backend due to frontend stalls.",
1251*4c12f41aSZhengjun Xing        "EventCode": "0x71",
1252*4c12f41aSZhengjun Xing        "EventName": "TOPDOWN_FE_BOUND.ALL",
1253*4c12f41aSZhengjun Xing        "SampleAfterValue": "1000003",
1254*4c12f41aSZhengjun Xing        "Unit": "cpu_atom"
1255*4c12f41aSZhengjun Xing    },
1256*4c12f41aSZhengjun Xing    {
1257*4c12f41aSZhengjun Xing        "BriefDescription": "Counts the number of issue slots every cycle that were not delivered by the frontend due to BACLEARS.",
1258*4c12f41aSZhengjun Xing        "EventCode": "0x71",
1259*4c12f41aSZhengjun Xing        "EventName": "TOPDOWN_FE_BOUND.BRANCH_DETECT",
1260*4c12f41aSZhengjun Xing        "PublicDescription": "Counts the number of issue slots every cycle that were not delivered by the frontend due to BACLEARS, which occurs when the Branch Target Buffer (BTB) prediction or lack thereof, was corrected by a later branch predictor in the frontend. Includes BACLEARS due to all branch types including conditional and unconditional jumps, returns, and indirect branches.",
1261*4c12f41aSZhengjun Xing        "SampleAfterValue": "1000003",
1262*4c12f41aSZhengjun Xing        "UMask": "0x2",
1263*4c12f41aSZhengjun Xing        "Unit": "cpu_atom"
1264*4c12f41aSZhengjun Xing    },
1265*4c12f41aSZhengjun Xing    {
1266*4c12f41aSZhengjun Xing        "BriefDescription": "Counts the number of issue slots every cycle that were not delivered by the frontend due to BTCLEARS.",
1267*4c12f41aSZhengjun Xing        "EventCode": "0x71",
1268*4c12f41aSZhengjun Xing        "EventName": "TOPDOWN_FE_BOUND.BRANCH_RESTEER",
1269*4c12f41aSZhengjun Xing        "PublicDescription": "Counts the number of issue slots every cycle that were not delivered by the frontend due to BTCLEARS, which occurs when the Branch Target Buffer (BTB) predicts a taken branch.",
1270*4c12f41aSZhengjun Xing        "SampleAfterValue": "1000003",
1271*4c12f41aSZhengjun Xing        "UMask": "0x40",
1272*4c12f41aSZhengjun Xing        "Unit": "cpu_atom"
1273*4c12f41aSZhengjun Xing    },
1274*4c12f41aSZhengjun Xing    {
1275*4c12f41aSZhengjun Xing        "BriefDescription": "Counts the number of issue slots every cycle that were not delivered by the frontend due to the microcode sequencer (MS).",
1276*4c12f41aSZhengjun Xing        "EventCode": "0x71",
1277*4c12f41aSZhengjun Xing        "EventName": "TOPDOWN_FE_BOUND.CISC",
1278*4c12f41aSZhengjun Xing        "SampleAfterValue": "1000003",
1279*4c12f41aSZhengjun Xing        "UMask": "0x1",
1280*4c12f41aSZhengjun Xing        "Unit": "cpu_atom"
1281*4c12f41aSZhengjun Xing    },
1282*4c12f41aSZhengjun Xing    {
1283*4c12f41aSZhengjun Xing        "BriefDescription": "Counts the number of issue slots every cycle that were not delivered by the frontend due to decode stalls.",
1284*4c12f41aSZhengjun Xing        "EventCode": "0x71",
1285*4c12f41aSZhengjun Xing        "EventName": "TOPDOWN_FE_BOUND.DECODE",
1286*4c12f41aSZhengjun Xing        "SampleAfterValue": "1000003",
1287*4c12f41aSZhengjun Xing        "UMask": "0x8",
1288*4c12f41aSZhengjun Xing        "Unit": "cpu_atom"
1289*4c12f41aSZhengjun Xing    },
1290*4c12f41aSZhengjun Xing    {
1291*4c12f41aSZhengjun Xing        "BriefDescription": "Counts the number of issue slots every cycle that were not delivered by the frontend due to frontend bandwidth restrictions due to decode, predecode, cisc, and other limitations.",
1292*4c12f41aSZhengjun Xing        "EventCode": "0x71",
1293*4c12f41aSZhengjun Xing        "EventName": "TOPDOWN_FE_BOUND.FRONTEND_BANDWIDTH",
1294*4c12f41aSZhengjun Xing        "SampleAfterValue": "1000003",
1295*4c12f41aSZhengjun Xing        "UMask": "0x8d",
1296*4c12f41aSZhengjun Xing        "Unit": "cpu_atom"
1297*4c12f41aSZhengjun Xing    },
1298*4c12f41aSZhengjun Xing    {
1299*4c12f41aSZhengjun Xing        "BriefDescription": "Counts the number of issue slots every cycle that were not delivered by the frontend due to a latency related stalls including BACLEARs, BTCLEARs, ITLB misses, and ICache misses.",
1300*4c12f41aSZhengjun Xing        "EventCode": "0x71",
1301*4c12f41aSZhengjun Xing        "EventName": "TOPDOWN_FE_BOUND.FRONTEND_LATENCY",
1302*4c12f41aSZhengjun Xing        "SampleAfterValue": "1000003",
1303*4c12f41aSZhengjun Xing        "UMask": "0x72",
1304*4c12f41aSZhengjun Xing        "Unit": "cpu_atom"
1305*4c12f41aSZhengjun Xing    },
1306*4c12f41aSZhengjun Xing    {
1307*4c12f41aSZhengjun Xing        "BriefDescription": "Counts the number of issue slots every cycle that were not delivered by the frontend due to ITLB misses.",
1308*4c12f41aSZhengjun Xing        "EventCode": "0x71",
1309*4c12f41aSZhengjun Xing        "EventName": "TOPDOWN_FE_BOUND.ITLB",
1310*4c12f41aSZhengjun Xing        "PublicDescription": "Counts the number of issue slots every cycle that were not delivered by the frontend due to Instruction Table Lookaside Buffer (ITLB) misses.",
1311*4c12f41aSZhengjun Xing        "SampleAfterValue": "1000003",
1312*4c12f41aSZhengjun Xing        "UMask": "0x10",
1313*4c12f41aSZhengjun Xing        "Unit": "cpu_atom"
1314*4c12f41aSZhengjun Xing    },
1315*4c12f41aSZhengjun Xing    {
1316*4c12f41aSZhengjun Xing        "BriefDescription": "Counts the number of issue slots every cycle that were not delivered by the frontend due to other common frontend stalls not categorized.",
1317*4c12f41aSZhengjun Xing        "EventCode": "0x71",
1318*4c12f41aSZhengjun Xing        "EventName": "TOPDOWN_FE_BOUND.OTHER",
1319*4c12f41aSZhengjun Xing        "SampleAfterValue": "1000003",
1320*4c12f41aSZhengjun Xing        "UMask": "0x80",
1321*4c12f41aSZhengjun Xing        "Unit": "cpu_atom"
1322*4c12f41aSZhengjun Xing    },
1323*4c12f41aSZhengjun Xing    {
1324*4c12f41aSZhengjun Xing        "BriefDescription": "Counts the number of issue slots every cycle that were not delivered by the frontend due to wrong predecodes.",
1325*4c12f41aSZhengjun Xing        "EventCode": "0x71",
1326*4c12f41aSZhengjun Xing        "EventName": "TOPDOWN_FE_BOUND.PREDECODE",
1327*4c12f41aSZhengjun Xing        "SampleAfterValue": "1000003",
1328*4c12f41aSZhengjun Xing        "UMask": "0x4",
1329*4c12f41aSZhengjun Xing        "Unit": "cpu_atom"
1330*4c12f41aSZhengjun Xing    },
1331*4c12f41aSZhengjun Xing    {
1332*4c12f41aSZhengjun Xing        "BriefDescription": "Counts the total number of consumed retirement slots.",
1333*4c12f41aSZhengjun Xing        "EventCode": "0xc2",
1334*4c12f41aSZhengjun Xing        "EventName": "TOPDOWN_RETIRING.ALL",
1335*4c12f41aSZhengjun Xing        "PEBS": "1",
1336*4c12f41aSZhengjun Xing        "SampleAfterValue": "1000003",
1337*4c12f41aSZhengjun Xing        "Unit": "cpu_atom"
1338*4c12f41aSZhengjun Xing    },
1339*4c12f41aSZhengjun Xing    {
13405fa2481cSZhengjun Xing        "BriefDescription": "UOPS_DECODED.DEC0_UOPS",
1341f9900dd0SZhengjun Xing        "EventCode": "0x76",
1342f9900dd0SZhengjun Xing        "EventName": "UOPS_DECODED.DEC0_UOPS",
1343f9900dd0SZhengjun Xing        "SampleAfterValue": "1000003",
1344f9900dd0SZhengjun Xing        "UMask": "0x1",
1345f9900dd0SZhengjun Xing        "Unit": "cpu_core"
1346f9900dd0SZhengjun Xing    },
1347f9900dd0SZhengjun Xing    {
1348f9900dd0SZhengjun Xing        "BriefDescription": "Uops executed on port 0",
1349f9900dd0SZhengjun Xing        "EventCode": "0xb2",
1350f9900dd0SZhengjun Xing        "EventName": "UOPS_DISPATCHED.PORT_0",
1351*4c12f41aSZhengjun Xing        "PublicDescription": "Number of uops dispatch to execution  port 0.",
1352f9900dd0SZhengjun Xing        "SampleAfterValue": "2000003",
1353f9900dd0SZhengjun Xing        "UMask": "0x1",
1354f9900dd0SZhengjun Xing        "Unit": "cpu_core"
1355f9900dd0SZhengjun Xing    },
1356f9900dd0SZhengjun Xing    {
1357f9900dd0SZhengjun Xing        "BriefDescription": "Uops executed on port 1",
1358f9900dd0SZhengjun Xing        "EventCode": "0xb2",
1359f9900dd0SZhengjun Xing        "EventName": "UOPS_DISPATCHED.PORT_1",
1360*4c12f41aSZhengjun Xing        "PublicDescription": "Number of uops dispatch to execution  port 1.",
1361f9900dd0SZhengjun Xing        "SampleAfterValue": "2000003",
1362f9900dd0SZhengjun Xing        "UMask": "0x2",
1363f9900dd0SZhengjun Xing        "Unit": "cpu_core"
1364f9900dd0SZhengjun Xing    },
1365f9900dd0SZhengjun Xing    {
1366f9900dd0SZhengjun Xing        "BriefDescription": "Uops executed on ports 2, 3 and 10",
1367f9900dd0SZhengjun Xing        "EventCode": "0xb2",
1368f9900dd0SZhengjun Xing        "EventName": "UOPS_DISPATCHED.PORT_2_3_10",
1369*4c12f41aSZhengjun Xing        "PublicDescription": "Number of uops dispatch to execution ports 2, 3 and 10",
1370f9900dd0SZhengjun Xing        "SampleAfterValue": "2000003",
1371f9900dd0SZhengjun Xing        "UMask": "0x4",
1372f9900dd0SZhengjun Xing        "Unit": "cpu_core"
1373f9900dd0SZhengjun Xing    },
1374f9900dd0SZhengjun Xing    {
1375f9900dd0SZhengjun Xing        "BriefDescription": "Uops executed on ports 4 and 9",
1376f9900dd0SZhengjun Xing        "EventCode": "0xb2",
1377f9900dd0SZhengjun Xing        "EventName": "UOPS_DISPATCHED.PORT_4_9",
1378*4c12f41aSZhengjun Xing        "PublicDescription": "Number of uops dispatch to execution ports 4 and 9",
1379f9900dd0SZhengjun Xing        "SampleAfterValue": "2000003",
1380f9900dd0SZhengjun Xing        "UMask": "0x10",
1381f9900dd0SZhengjun Xing        "Unit": "cpu_core"
1382f9900dd0SZhengjun Xing    },
1383f9900dd0SZhengjun Xing    {
1384f9900dd0SZhengjun Xing        "BriefDescription": "Uops executed on ports 5 and 11",
1385f9900dd0SZhengjun Xing        "EventCode": "0xb2",
1386f9900dd0SZhengjun Xing        "EventName": "UOPS_DISPATCHED.PORT_5_11",
1387*4c12f41aSZhengjun Xing        "PublicDescription": "Number of uops dispatch to execution ports 5 and 11",
1388f9900dd0SZhengjun Xing        "SampleAfterValue": "2000003",
1389f9900dd0SZhengjun Xing        "UMask": "0x20",
1390f9900dd0SZhengjun Xing        "Unit": "cpu_core"
1391f9900dd0SZhengjun Xing    },
1392f9900dd0SZhengjun Xing    {
1393f9900dd0SZhengjun Xing        "BriefDescription": "Uops executed on port 6",
1394f9900dd0SZhengjun Xing        "EventCode": "0xb2",
1395f9900dd0SZhengjun Xing        "EventName": "UOPS_DISPATCHED.PORT_6",
1396*4c12f41aSZhengjun Xing        "PublicDescription": "Number of uops dispatch to execution  port 6.",
1397f9900dd0SZhengjun Xing        "SampleAfterValue": "2000003",
1398f9900dd0SZhengjun Xing        "UMask": "0x40",
1399f9900dd0SZhengjun Xing        "Unit": "cpu_core"
1400f9900dd0SZhengjun Xing    },
1401f9900dd0SZhengjun Xing    {
1402f9900dd0SZhengjun Xing        "BriefDescription": "Uops executed on ports 7 and 8",
1403f9900dd0SZhengjun Xing        "EventCode": "0xb2",
1404f9900dd0SZhengjun Xing        "EventName": "UOPS_DISPATCHED.PORT_7_8",
1405*4c12f41aSZhengjun Xing        "PublicDescription": "Number of uops dispatch to execution  ports 7 and 8.",
1406f9900dd0SZhengjun Xing        "SampleAfterValue": "2000003",
1407f9900dd0SZhengjun Xing        "UMask": "0x80",
1408f9900dd0SZhengjun Xing        "Unit": "cpu_core"
1409f9900dd0SZhengjun Xing    },
1410f9900dd0SZhengjun Xing    {
1411f9900dd0SZhengjun Xing        "BriefDescription": "Cycles at least 1 micro-op is executed from any thread on physical core.",
1412f9900dd0SZhengjun Xing        "CounterMask": "1",
1413f9900dd0SZhengjun Xing        "EventCode": "0xb1",
1414f9900dd0SZhengjun Xing        "EventName": "UOPS_EXECUTED.CORE_CYCLES_GE_1",
1415*4c12f41aSZhengjun Xing        "PublicDescription": "Counts cycles when at least 1 micro-op is executed from any thread on physical core.",
1416f9900dd0SZhengjun Xing        "SampleAfterValue": "2000003",
1417f9900dd0SZhengjun Xing        "UMask": "0x2",
1418f9900dd0SZhengjun Xing        "Unit": "cpu_core"
1419f9900dd0SZhengjun Xing    },
1420f9900dd0SZhengjun Xing    {
1421f9900dd0SZhengjun Xing        "BriefDescription": "Cycles at least 2 micro-op is executed from any thread on physical core.",
1422f9900dd0SZhengjun Xing        "CounterMask": "2",
1423f9900dd0SZhengjun Xing        "EventCode": "0xb1",
1424f9900dd0SZhengjun Xing        "EventName": "UOPS_EXECUTED.CORE_CYCLES_GE_2",
1425*4c12f41aSZhengjun Xing        "PublicDescription": "Counts cycles when at least 2 micro-ops are executed from any thread on physical core.",
1426f9900dd0SZhengjun Xing        "SampleAfterValue": "2000003",
1427f9900dd0SZhengjun Xing        "UMask": "0x2",
1428f9900dd0SZhengjun Xing        "Unit": "cpu_core"
1429f9900dd0SZhengjun Xing    },
1430f9900dd0SZhengjun Xing    {
1431f9900dd0SZhengjun Xing        "BriefDescription": "Cycles at least 3 micro-op is executed from any thread on physical core.",
1432f9900dd0SZhengjun Xing        "CounterMask": "3",
1433f9900dd0SZhengjun Xing        "EventCode": "0xb1",
1434f9900dd0SZhengjun Xing        "EventName": "UOPS_EXECUTED.CORE_CYCLES_GE_3",
1435*4c12f41aSZhengjun Xing        "PublicDescription": "Counts cycles when at least 3 micro-ops are executed from any thread on physical core.",
1436f9900dd0SZhengjun Xing        "SampleAfterValue": "2000003",
1437f9900dd0SZhengjun Xing        "UMask": "0x2",
1438f9900dd0SZhengjun Xing        "Unit": "cpu_core"
1439f9900dd0SZhengjun Xing    },
1440f9900dd0SZhengjun Xing    {
1441f9900dd0SZhengjun Xing        "BriefDescription": "Cycles at least 4 micro-op is executed from any thread on physical core.",
1442f9900dd0SZhengjun Xing        "CounterMask": "4",
1443f9900dd0SZhengjun Xing        "EventCode": "0xb1",
1444f9900dd0SZhengjun Xing        "EventName": "UOPS_EXECUTED.CORE_CYCLES_GE_4",
1445*4c12f41aSZhengjun Xing        "PublicDescription": "Counts cycles when at least 4 micro-ops are executed from any thread on physical core.",
1446f9900dd0SZhengjun Xing        "SampleAfterValue": "2000003",
1447f9900dd0SZhengjun Xing        "UMask": "0x2",
1448f9900dd0SZhengjun Xing        "Unit": "cpu_core"
1449f9900dd0SZhengjun Xing    },
1450f9900dd0SZhengjun Xing    {
1451f9900dd0SZhengjun Xing        "BriefDescription": "Cycles where at least 1 uop was executed per-thread",
1452f9900dd0SZhengjun Xing        "CounterMask": "1",
1453f9900dd0SZhengjun Xing        "EventCode": "0xb1",
1454f9900dd0SZhengjun Xing        "EventName": "UOPS_EXECUTED.CYCLES_GE_1",
1455*4c12f41aSZhengjun Xing        "PublicDescription": "Cycles where at least 1 uop was executed per-thread.",
1456f9900dd0SZhengjun Xing        "SampleAfterValue": "2000003",
1457f9900dd0SZhengjun Xing        "UMask": "0x1",
1458f9900dd0SZhengjun Xing        "Unit": "cpu_core"
1459f9900dd0SZhengjun Xing    },
1460f9900dd0SZhengjun Xing    {
1461f9900dd0SZhengjun Xing        "BriefDescription": "Cycles where at least 2 uops were executed per-thread",
1462f9900dd0SZhengjun Xing        "CounterMask": "2",
1463f9900dd0SZhengjun Xing        "EventCode": "0xb1",
1464f9900dd0SZhengjun Xing        "EventName": "UOPS_EXECUTED.CYCLES_GE_2",
1465*4c12f41aSZhengjun Xing        "PublicDescription": "Cycles where at least 2 uops were executed per-thread.",
1466f9900dd0SZhengjun Xing        "SampleAfterValue": "2000003",
1467f9900dd0SZhengjun Xing        "UMask": "0x1",
1468f9900dd0SZhengjun Xing        "Unit": "cpu_core"
1469f9900dd0SZhengjun Xing    },
1470f9900dd0SZhengjun Xing    {
1471f9900dd0SZhengjun Xing        "BriefDescription": "Cycles where at least 3 uops were executed per-thread",
1472f9900dd0SZhengjun Xing        "CounterMask": "3",
1473f9900dd0SZhengjun Xing        "EventCode": "0xb1",
1474f9900dd0SZhengjun Xing        "EventName": "UOPS_EXECUTED.CYCLES_GE_3",
1475*4c12f41aSZhengjun Xing        "PublicDescription": "Cycles where at least 3 uops were executed per-thread.",
1476f9900dd0SZhengjun Xing        "SampleAfterValue": "2000003",
1477f9900dd0SZhengjun Xing        "UMask": "0x1",
1478f9900dd0SZhengjun Xing        "Unit": "cpu_core"
1479f9900dd0SZhengjun Xing    },
1480f9900dd0SZhengjun Xing    {
1481f9900dd0SZhengjun Xing        "BriefDescription": "Cycles where at least 4 uops were executed per-thread",
1482f9900dd0SZhengjun Xing        "CounterMask": "4",
1483f9900dd0SZhengjun Xing        "EventCode": "0xb1",
1484f9900dd0SZhengjun Xing        "EventName": "UOPS_EXECUTED.CYCLES_GE_4",
1485*4c12f41aSZhengjun Xing        "PublicDescription": "Cycles where at least 4 uops were executed per-thread.",
1486f9900dd0SZhengjun Xing        "SampleAfterValue": "2000003",
1487f9900dd0SZhengjun Xing        "UMask": "0x1",
1488f9900dd0SZhengjun Xing        "Unit": "cpu_core"
1489f9900dd0SZhengjun Xing    },
1490f9900dd0SZhengjun Xing    {
1491f9900dd0SZhengjun Xing        "BriefDescription": "Counts number of cycles no uops were dispatched to be executed on this thread.",
1492f9900dd0SZhengjun Xing        "CounterMask": "1",
1493f9900dd0SZhengjun Xing        "EventCode": "0xb1",
1494f9900dd0SZhengjun Xing        "EventName": "UOPS_EXECUTED.STALLS",
1495f9900dd0SZhengjun Xing        "Invert": "1",
1496*4c12f41aSZhengjun Xing        "PublicDescription": "Counts cycles during which no uops were dispatched from the Reservation Station (RS) per thread.",
1497f9900dd0SZhengjun Xing        "SampleAfterValue": "2000003",
1498f9900dd0SZhengjun Xing        "UMask": "0x1",
1499f9900dd0SZhengjun Xing        "Unit": "cpu_core"
1500f9900dd0SZhengjun Xing    },
1501f9900dd0SZhengjun Xing    {
1502f9900dd0SZhengjun Xing        "BriefDescription": "This event is deprecated. Refer to new event UOPS_EXECUTED.STALLS",
1503f9900dd0SZhengjun Xing        "CounterMask": "1",
1504*4c12f41aSZhengjun Xing        "Deprecated": "1",
1505f9900dd0SZhengjun Xing        "EventCode": "0xb1",
1506f9900dd0SZhengjun Xing        "EventName": "UOPS_EXECUTED.STALL_CYCLES",
1507f9900dd0SZhengjun Xing        "Invert": "1",
1508f9900dd0SZhengjun Xing        "SampleAfterValue": "2000003",
1509f9900dd0SZhengjun Xing        "UMask": "0x1",
1510f9900dd0SZhengjun Xing        "Unit": "cpu_core"
1511f9900dd0SZhengjun Xing    },
1512f9900dd0SZhengjun Xing    {
1513f9900dd0SZhengjun Xing        "BriefDescription": "Counts the number of uops to be executed per-thread each cycle.",
1514f9900dd0SZhengjun Xing        "EventCode": "0xb1",
1515f9900dd0SZhengjun Xing        "EventName": "UOPS_EXECUTED.THREAD",
1516f9900dd0SZhengjun Xing        "SampleAfterValue": "2000003",
1517f9900dd0SZhengjun Xing        "UMask": "0x1",
1518f9900dd0SZhengjun Xing        "Unit": "cpu_core"
1519f9900dd0SZhengjun Xing    },
1520f9900dd0SZhengjun Xing    {
1521f9900dd0SZhengjun Xing        "BriefDescription": "Counts the number of x87 uops dispatched.",
1522f9900dd0SZhengjun Xing        "EventCode": "0xb1",
1523f9900dd0SZhengjun Xing        "EventName": "UOPS_EXECUTED.X87",
1524*4c12f41aSZhengjun Xing        "PublicDescription": "Counts the number of x87 uops executed.",
1525f9900dd0SZhengjun Xing        "SampleAfterValue": "2000003",
1526f9900dd0SZhengjun Xing        "UMask": "0x10",
1527f9900dd0SZhengjun Xing        "Unit": "cpu_core"
1528f9900dd0SZhengjun Xing    },
1529f9900dd0SZhengjun Xing    {
1530f9900dd0SZhengjun Xing        "BriefDescription": "Uops that RAT issues to RS",
1531f9900dd0SZhengjun Xing        "EventCode": "0xae",
1532f9900dd0SZhengjun Xing        "EventName": "UOPS_ISSUED.ANY",
1533*4c12f41aSZhengjun Xing        "PublicDescription": "Counts the number of uops that the Resource Allocation Table (RAT) issues to the Reservation Station (RS).",
1534f9900dd0SZhengjun Xing        "SampleAfterValue": "2000003",
1535f9900dd0SZhengjun Xing        "UMask": "0x1",
1536f9900dd0SZhengjun Xing        "Unit": "cpu_core"
1537f9900dd0SZhengjun Xing    },
1538f9900dd0SZhengjun Xing    {
1539*4c12f41aSZhengjun Xing        "BriefDescription": "Counts the total number of uops retired.",
1540*4c12f41aSZhengjun Xing        "EventCode": "0xc2",
1541*4c12f41aSZhengjun Xing        "EventName": "UOPS_RETIRED.ALL",
1542*4c12f41aSZhengjun Xing        "PEBS": "1",
1543*4c12f41aSZhengjun Xing        "SampleAfterValue": "2000003",
1544*4c12f41aSZhengjun Xing        "Unit": "cpu_atom"
1545*4c12f41aSZhengjun Xing    },
1546*4c12f41aSZhengjun Xing    {
1547f9900dd0SZhengjun Xing        "BriefDescription": "Cycles with retired uop(s).",
1548f9900dd0SZhengjun Xing        "CounterMask": "1",
1549f9900dd0SZhengjun Xing        "EventCode": "0xc2",
1550f9900dd0SZhengjun Xing        "EventName": "UOPS_RETIRED.CYCLES",
1551*4c12f41aSZhengjun Xing        "PublicDescription": "Counts cycles where at least one uop has retired.",
1552f9900dd0SZhengjun Xing        "SampleAfterValue": "1000003",
1553f9900dd0SZhengjun Xing        "UMask": "0x2",
1554f9900dd0SZhengjun Xing        "Unit": "cpu_core"
1555f9900dd0SZhengjun Xing    },
1556f9900dd0SZhengjun Xing    {
15575fa2481cSZhengjun Xing        "BriefDescription": "Retired uops except the last uop of each instruction.",
1558f9900dd0SZhengjun Xing        "EventCode": "0xc2",
1559f9900dd0SZhengjun Xing        "EventName": "UOPS_RETIRED.HEAVY",
1560*4c12f41aSZhengjun Xing        "PublicDescription": "Counts the number of retired micro-operations (uops) except the last uop of each instruction. An instruction that is decoded into less than two uops does not contribute to the count.",
1561f9900dd0SZhengjun Xing        "SampleAfterValue": "2000003",
1562f9900dd0SZhengjun Xing        "UMask": "0x1",
1563f9900dd0SZhengjun Xing        "Unit": "cpu_core"
1564f9900dd0SZhengjun Xing    },
1565f9900dd0SZhengjun Xing    {
1566*4c12f41aSZhengjun Xing        "BriefDescription": "Counts the number of integer divide uops retired.",
1567*4c12f41aSZhengjun Xing        "EventCode": "0xc2",
1568*4c12f41aSZhengjun Xing        "EventName": "UOPS_RETIRED.IDIV",
1569*4c12f41aSZhengjun Xing        "PEBS": "1",
1570*4c12f41aSZhengjun Xing        "SampleAfterValue": "2000003",
1571*4c12f41aSZhengjun Xing        "UMask": "0x10",
1572*4c12f41aSZhengjun Xing        "Unit": "cpu_atom"
1573*4c12f41aSZhengjun Xing    },
1574*4c12f41aSZhengjun Xing    {
1575*4c12f41aSZhengjun Xing        "BriefDescription": "Counts the number of uops that are from complex flows issued by the micro-sequencer (MS).",
1576*4c12f41aSZhengjun Xing        "EventCode": "0xc2",
1577*4c12f41aSZhengjun Xing        "EventName": "UOPS_RETIRED.MS",
1578*4c12f41aSZhengjun Xing        "PEBS": "1",
1579*4c12f41aSZhengjun Xing        "PublicDescription": "Counts the number of uops that are from complex flows issued by the Microcode Sequencer (MS). This includes uops from flows due to complex instructions, faults, assists, and inserted flows.",
1580*4c12f41aSZhengjun Xing        "SampleAfterValue": "2000003",
1581*4c12f41aSZhengjun Xing        "UMask": "0x1",
1582*4c12f41aSZhengjun Xing        "Unit": "cpu_atom"
1583*4c12f41aSZhengjun Xing    },
1584*4c12f41aSZhengjun Xing    {
15855fa2481cSZhengjun Xing        "BriefDescription": "UOPS_RETIRED.MS",
1586f9900dd0SZhengjun Xing        "EventCode": "0xc2",
1587f9900dd0SZhengjun Xing        "EventName": "UOPS_RETIRED.MS",
1588f9900dd0SZhengjun Xing        "MSRIndex": "0x3F7",
1589f9900dd0SZhengjun Xing        "MSRValue": "0x8",
1590f9900dd0SZhengjun Xing        "SampleAfterValue": "2000003",
1591f9900dd0SZhengjun Xing        "UMask": "0x4",
1592f9900dd0SZhengjun Xing        "Unit": "cpu_core"
1593f9900dd0SZhengjun Xing    },
1594f9900dd0SZhengjun Xing    {
1595f9900dd0SZhengjun Xing        "BriefDescription": "Retirement slots used.",
1596f9900dd0SZhengjun Xing        "EventCode": "0xc2",
1597f9900dd0SZhengjun Xing        "EventName": "UOPS_RETIRED.SLOTS",
1598*4c12f41aSZhengjun Xing        "PublicDescription": "Counts the retirement slots used each cycle.",
1599f9900dd0SZhengjun Xing        "SampleAfterValue": "2000003",
1600f9900dd0SZhengjun Xing        "UMask": "0x2",
1601f9900dd0SZhengjun Xing        "Unit": "cpu_core"
1602f9900dd0SZhengjun Xing    },
1603f9900dd0SZhengjun Xing    {
1604f9900dd0SZhengjun Xing        "BriefDescription": "Cycles without actually retired uops.",
1605f9900dd0SZhengjun Xing        "CounterMask": "1",
1606f9900dd0SZhengjun Xing        "EventCode": "0xc2",
1607f9900dd0SZhengjun Xing        "EventName": "UOPS_RETIRED.STALLS",
1608f9900dd0SZhengjun Xing        "Invert": "1",
1609*4c12f41aSZhengjun Xing        "PublicDescription": "This event counts cycles without actually retired uops.",
1610f9900dd0SZhengjun Xing        "SampleAfterValue": "1000003",
1611f9900dd0SZhengjun Xing        "UMask": "0x2",
1612f9900dd0SZhengjun Xing        "Unit": "cpu_core"
1613f9900dd0SZhengjun Xing    },
1614f9900dd0SZhengjun Xing    {
1615f9900dd0SZhengjun Xing        "BriefDescription": "This event is deprecated. Refer to new event UOPS_RETIRED.STALLS",
1616f9900dd0SZhengjun Xing        "CounterMask": "1",
1617*4c12f41aSZhengjun Xing        "Deprecated": "1",
1618f9900dd0SZhengjun Xing        "EventCode": "0xc2",
1619f9900dd0SZhengjun Xing        "EventName": "UOPS_RETIRED.STALL_CYCLES",
1620f9900dd0SZhengjun Xing        "Invert": "1",
1621f9900dd0SZhengjun Xing        "SampleAfterValue": "1000003",
1622f9900dd0SZhengjun Xing        "UMask": "0x2",
1623f9900dd0SZhengjun Xing        "Unit": "cpu_core"
1624*4c12f41aSZhengjun Xing    },
1625*4c12f41aSZhengjun Xing    {
1626*4c12f41aSZhengjun Xing        "BriefDescription": "Counts the number of x87 uops retired, includes those in MS flows.",
1627*4c12f41aSZhengjun Xing        "EventCode": "0xc2",
1628*4c12f41aSZhengjun Xing        "EventName": "UOPS_RETIRED.X87",
1629*4c12f41aSZhengjun Xing        "PEBS": "1",
1630*4c12f41aSZhengjun Xing        "SampleAfterValue": "2000003",
1631*4c12f41aSZhengjun Xing        "UMask": "0x2",
1632*4c12f41aSZhengjun Xing        "Unit": "cpu_atom"
1633f9900dd0SZhengjun Xing    }
1634f9900dd0SZhengjun Xing]
1635