xref: /linux/tools/perf/pmu-events/arch/x86/meteorlake/pipeline.json (revision a1ff5a7d78a036d6c2178ee5acd6ba4946243800)
11ab4ef06SIan Rogers[
21ab4ef06SIan Rogers    {
31d262a85SIan Rogers        "BriefDescription": "Counts the number of cycles when any of the dividers are active.",
4*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
51d262a85SIan Rogers        "CounterMask": "1",
61d262a85SIan Rogers        "EventCode": "0xcd",
71d262a85SIan Rogers        "EventName": "ARITH.DIV_ACTIVE",
81d262a85SIan Rogers        "SampleAfterValue": "1000003",
91d262a85SIan Rogers        "UMask": "0x3",
101d262a85SIan Rogers        "Unit": "cpu_atom"
111d262a85SIan Rogers    },
121d262a85SIan Rogers    {
13dfc83cc8SIan Rogers        "BriefDescription": "Cycles when divide unit is busy executing divide or square root operations.",
14*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
15dfc83cc8SIan Rogers        "CounterMask": "1",
16dfc83cc8SIan Rogers        "EventCode": "0xb0",
17dfc83cc8SIan Rogers        "EventName": "ARITH.DIV_ACTIVE",
18dfc83cc8SIan Rogers        "PublicDescription": "Counts cycles when divide unit is busy executing divide or square root operations. Accounts for integer and floating-point operations.",
19dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
20dfc83cc8SIan Rogers        "UMask": "0x9",
21dfc83cc8SIan Rogers        "Unit": "cpu_core"
22dfc83cc8SIan Rogers    },
23dfc83cc8SIan Rogers    {
24dfc83cc8SIan Rogers        "BriefDescription": "This event counts the cycles the integer divider is busy.",
25*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
26dfc83cc8SIan Rogers        "CounterMask": "1",
27dfc83cc8SIan Rogers        "EventCode": "0xb0",
28dfc83cc8SIan Rogers        "EventName": "ARITH.IDIV_ACTIVE",
29dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
30dfc83cc8SIan Rogers        "UMask": "0x8",
31dfc83cc8SIan Rogers        "Unit": "cpu_core"
32dfc83cc8SIan Rogers    },
33dfc83cc8SIan Rogers    {
34dfc83cc8SIan Rogers        "BriefDescription": "Number of occurrences where a microcode assist is invoked by hardware.",
35*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
36dfc83cc8SIan Rogers        "EventCode": "0xc1",
37dfc83cc8SIan Rogers        "EventName": "ASSISTS.ANY",
38dfc83cc8SIan Rogers        "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.",
39dfc83cc8SIan Rogers        "SampleAfterValue": "100003",
40dfc83cc8SIan Rogers        "UMask": "0x1b",
41dfc83cc8SIan Rogers        "Unit": "cpu_core"
42dfc83cc8SIan Rogers    },
43dfc83cc8SIan Rogers    {
441ab4ef06SIan Rogers        "BriefDescription": "Counts the total number of branch instructions retired for all branch types.",
45*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
461ab4ef06SIan Rogers        "EventCode": "0xc4",
471ab4ef06SIan Rogers        "EventName": "BR_INST_RETIRED.ALL_BRANCHES",
48591530c0SIan Rogers        "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.",
491ab4ef06SIan Rogers        "SampleAfterValue": "200003",
501ab4ef06SIan Rogers        "Unit": "cpu_atom"
511ab4ef06SIan Rogers    },
521ab4ef06SIan Rogers    {
535362e4d1SIan Rogers        "BriefDescription": "All branch instructions retired.",
54*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
555362e4d1SIan Rogers        "EventCode": "0xc4",
565362e4d1SIan Rogers        "EventName": "BR_INST_RETIRED.ALL_BRANCHES",
575362e4d1SIan Rogers        "PEBS": "1",
58591530c0SIan Rogers        "PublicDescription": "Counts all branch instructions retired.",
595362e4d1SIan Rogers        "SampleAfterValue": "400009",
605362e4d1SIan Rogers        "Unit": "cpu_core"
615362e4d1SIan Rogers    },
625362e4d1SIan Rogers    {
631d262a85SIan Rogers        "BriefDescription": "Counts the number of retired JCC (Jump on Conditional Code) branch instructions retired, includes both taken and not taken branches.",
64*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
651d262a85SIan Rogers        "EventCode": "0xc4",
661d262a85SIan Rogers        "EventName": "BR_INST_RETIRED.COND",
671d262a85SIan Rogers        "SampleAfterValue": "200003",
681d262a85SIan Rogers        "UMask": "0x7e",
691d262a85SIan Rogers        "Unit": "cpu_atom"
701d262a85SIan Rogers    },
711d262a85SIan Rogers    {
72dfc83cc8SIan Rogers        "BriefDescription": "Conditional branch instructions retired.",
73*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
74dfc83cc8SIan Rogers        "EventCode": "0xc4",
75dfc83cc8SIan Rogers        "EventName": "BR_INST_RETIRED.COND",
76dfc83cc8SIan Rogers        "PEBS": "1",
77dfc83cc8SIan Rogers        "PublicDescription": "Counts conditional branch instructions retired.",
78dfc83cc8SIan Rogers        "SampleAfterValue": "400009",
79dfc83cc8SIan Rogers        "UMask": "0x11",
80dfc83cc8SIan Rogers        "Unit": "cpu_core"
81dfc83cc8SIan Rogers    },
82dfc83cc8SIan Rogers    {
83dfc83cc8SIan Rogers        "BriefDescription": "Not taken branch instructions retired.",
84*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
85dfc83cc8SIan Rogers        "EventCode": "0xc4",
86dfc83cc8SIan Rogers        "EventName": "BR_INST_RETIRED.COND_NTAKEN",
87dfc83cc8SIan Rogers        "PEBS": "1",
88dfc83cc8SIan Rogers        "PublicDescription": "Counts not taken branch instructions retired.",
89dfc83cc8SIan Rogers        "SampleAfterValue": "400009",
90dfc83cc8SIan Rogers        "UMask": "0x10",
91dfc83cc8SIan Rogers        "Unit": "cpu_core"
92dfc83cc8SIan Rogers    },
93dfc83cc8SIan Rogers    {
941d262a85SIan Rogers        "BriefDescription": "Counts the number of taken JCC (Jump on Conditional Code) branch instructions retired.",
95*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
961d262a85SIan Rogers        "EventCode": "0xc4",
971d262a85SIan Rogers        "EventName": "BR_INST_RETIRED.COND_TAKEN",
981d262a85SIan Rogers        "SampleAfterValue": "200003",
991d262a85SIan Rogers        "UMask": "0xfe",
1001d262a85SIan Rogers        "Unit": "cpu_atom"
1011d262a85SIan Rogers    },
1021d262a85SIan Rogers    {
103dfc83cc8SIan Rogers        "BriefDescription": "Taken conditional branch instructions retired.",
104*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
105dfc83cc8SIan Rogers        "EventCode": "0xc4",
106dfc83cc8SIan Rogers        "EventName": "BR_INST_RETIRED.COND_TAKEN",
107dfc83cc8SIan Rogers        "PEBS": "1",
108dfc83cc8SIan Rogers        "PublicDescription": "Counts taken conditional branch instructions retired.",
109dfc83cc8SIan Rogers        "SampleAfterValue": "400009",
110dfc83cc8SIan Rogers        "UMask": "0x1",
111dfc83cc8SIan Rogers        "Unit": "cpu_core"
112dfc83cc8SIan Rogers    },
113dfc83cc8SIan Rogers    {
114dfc83cc8SIan Rogers        "BriefDescription": "Counts the number of far branch instructions retired, includes far jump, far call and return, and interrupt call and return.",
115*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
116dfc83cc8SIan Rogers        "EventCode": "0xc4",
117dfc83cc8SIan Rogers        "EventName": "BR_INST_RETIRED.FAR_BRANCH",
118dfc83cc8SIan Rogers        "SampleAfterValue": "200003",
119dfc83cc8SIan Rogers        "UMask": "0xbf",
120dfc83cc8SIan Rogers        "Unit": "cpu_atom"
121dfc83cc8SIan Rogers    },
122dfc83cc8SIan Rogers    {
123dfc83cc8SIan Rogers        "BriefDescription": "Far branch instructions retired.",
124*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
125dfc83cc8SIan Rogers        "EventCode": "0xc4",
126dfc83cc8SIan Rogers        "EventName": "BR_INST_RETIRED.FAR_BRANCH",
127dfc83cc8SIan Rogers        "PEBS": "1",
128dfc83cc8SIan Rogers        "PublicDescription": "Counts far branch instructions retired.",
129dfc83cc8SIan Rogers        "SampleAfterValue": "100007",
130dfc83cc8SIan Rogers        "UMask": "0x40",
131dfc83cc8SIan Rogers        "Unit": "cpu_core"
132dfc83cc8SIan Rogers    },
133dfc83cc8SIan Rogers    {
1341d262a85SIan Rogers        "BriefDescription": "Counts the number of near indirect JMP and near indirect CALL branch instructions retired.",
135*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
1361d262a85SIan Rogers        "EventCode": "0xc4",
1371d262a85SIan Rogers        "EventName": "BR_INST_RETIRED.INDIRECT",
1381d262a85SIan Rogers        "SampleAfterValue": "200003",
1391d262a85SIan Rogers        "UMask": "0xeb",
1401d262a85SIan Rogers        "Unit": "cpu_atom"
1411d262a85SIan Rogers    },
1421d262a85SIan Rogers    {
143dfc83cc8SIan Rogers        "BriefDescription": "Indirect near branch instructions retired (excluding returns)",
144*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
145dfc83cc8SIan Rogers        "EventCode": "0xc4",
146dfc83cc8SIan Rogers        "EventName": "BR_INST_RETIRED.INDIRECT",
147dfc83cc8SIan Rogers        "PEBS": "1",
148dfc83cc8SIan Rogers        "PublicDescription": "Counts near indirect branch instructions retired excluding returns. TSX abort is an indirect branch.",
149dfc83cc8SIan Rogers        "SampleAfterValue": "100003",
150dfc83cc8SIan Rogers        "UMask": "0x80",
151dfc83cc8SIan Rogers        "Unit": "cpu_core"
152dfc83cc8SIan Rogers    },
153dfc83cc8SIan Rogers    {
1541d262a85SIan Rogers        "BriefDescription": "Counts the number of near indirect CALL branch instructions retired.",
155*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
1561d262a85SIan Rogers        "EventCode": "0xc4",
1571d262a85SIan Rogers        "EventName": "BR_INST_RETIRED.INDIRECT_CALL",
1581d262a85SIan Rogers        "SampleAfterValue": "200003",
1591d262a85SIan Rogers        "UMask": "0xfb",
1601d262a85SIan Rogers        "Unit": "cpu_atom"
1611d262a85SIan Rogers    },
1621d262a85SIan Rogers    {
1631d262a85SIan Rogers        "BriefDescription": "This event is deprecated. Refer to new event BR_INST_RETIRED.INDIRECT_CALL",
164*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
1651d262a85SIan Rogers        "Deprecated": "1",
1661d262a85SIan Rogers        "EventCode": "0xc4",
1671d262a85SIan Rogers        "EventName": "BR_INST_RETIRED.IND_CALL",
1681d262a85SIan Rogers        "SampleAfterValue": "200003",
1691d262a85SIan Rogers        "UMask": "0xfb",
1701d262a85SIan Rogers        "Unit": "cpu_atom"
1711d262a85SIan Rogers    },
1721d262a85SIan Rogers    {
173dfc83cc8SIan Rogers        "BriefDescription": "Counts the number of near CALL branch instructions retired.",
174*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
175dfc83cc8SIan Rogers        "EventCode": "0xc4",
176dfc83cc8SIan Rogers        "EventName": "BR_INST_RETIRED.NEAR_CALL",
177dfc83cc8SIan Rogers        "SampleAfterValue": "200003",
178dfc83cc8SIan Rogers        "UMask": "0xf9",
179dfc83cc8SIan Rogers        "Unit": "cpu_atom"
180dfc83cc8SIan Rogers    },
181dfc83cc8SIan Rogers    {
182dfc83cc8SIan Rogers        "BriefDescription": "Direct and indirect near call instructions retired.",
183*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
184dfc83cc8SIan Rogers        "EventCode": "0xc4",
185dfc83cc8SIan Rogers        "EventName": "BR_INST_RETIRED.NEAR_CALL",
186dfc83cc8SIan Rogers        "PEBS": "1",
187dfc83cc8SIan Rogers        "PublicDescription": "Counts both direct and indirect near call instructions retired.",
188dfc83cc8SIan Rogers        "SampleAfterValue": "100007",
189dfc83cc8SIan Rogers        "UMask": "0x2",
190dfc83cc8SIan Rogers        "Unit": "cpu_core"
191dfc83cc8SIan Rogers    },
192dfc83cc8SIan Rogers    {
1931d262a85SIan Rogers        "BriefDescription": "Counts the number of near RET branch instructions retired.",
194*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
1951d262a85SIan Rogers        "EventCode": "0xc4",
1961d262a85SIan Rogers        "EventName": "BR_INST_RETIRED.NEAR_RETURN",
1971d262a85SIan Rogers        "SampleAfterValue": "200003",
1981d262a85SIan Rogers        "UMask": "0xf7",
1991d262a85SIan Rogers        "Unit": "cpu_atom"
2001d262a85SIan Rogers    },
2011d262a85SIan Rogers    {
202dfc83cc8SIan Rogers        "BriefDescription": "Return instructions retired.",
203*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
204dfc83cc8SIan Rogers        "EventCode": "0xc4",
205dfc83cc8SIan Rogers        "EventName": "BR_INST_RETIRED.NEAR_RETURN",
206dfc83cc8SIan Rogers        "PEBS": "1",
207dfc83cc8SIan Rogers        "PublicDescription": "Counts return instructions retired.",
208dfc83cc8SIan Rogers        "SampleAfterValue": "100007",
209dfc83cc8SIan Rogers        "UMask": "0x8",
210dfc83cc8SIan Rogers        "Unit": "cpu_core"
211dfc83cc8SIan Rogers    },
212dfc83cc8SIan Rogers    {
213dfc83cc8SIan Rogers        "BriefDescription": "Taken branch instructions retired.",
214*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
215dfc83cc8SIan Rogers        "EventCode": "0xc4",
216dfc83cc8SIan Rogers        "EventName": "BR_INST_RETIRED.NEAR_TAKEN",
217dfc83cc8SIan Rogers        "PEBS": "1",
218dfc83cc8SIan Rogers        "PublicDescription": "Counts taken branch instructions retired.",
219dfc83cc8SIan Rogers        "SampleAfterValue": "400009",
220dfc83cc8SIan Rogers        "UMask": "0x20",
221dfc83cc8SIan Rogers        "Unit": "cpu_core"
222dfc83cc8SIan Rogers    },
223dfc83cc8SIan Rogers    {
2241ab4ef06SIan Rogers        "BriefDescription": "Counts the total number of mispredicted branch instructions retired for all branch types.",
225*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
2261ab4ef06SIan Rogers        "EventCode": "0xc5",
2271ab4ef06SIan Rogers        "EventName": "BR_MISP_RETIRED.ALL_BRANCHES",
228591530c0SIan Rogers        "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.",
2291ab4ef06SIan Rogers        "SampleAfterValue": "200003",
2301ab4ef06SIan Rogers        "Unit": "cpu_atom"
2311ab4ef06SIan Rogers    },
2321ab4ef06SIan Rogers    {
2335362e4d1SIan Rogers        "BriefDescription": "All mispredicted branch instructions retired.",
234*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
2355362e4d1SIan Rogers        "EventCode": "0xc5",
2365362e4d1SIan Rogers        "EventName": "BR_MISP_RETIRED.ALL_BRANCHES",
2375362e4d1SIan Rogers        "PEBS": "1",
238591530c0SIan Rogers        "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.",
2395362e4d1SIan Rogers        "SampleAfterValue": "400009",
2405362e4d1SIan Rogers        "Unit": "cpu_core"
2415362e4d1SIan Rogers    },
2425362e4d1SIan Rogers    {
243dfc83cc8SIan Rogers        "BriefDescription": "All mispredicted branch instructions retired. This precise event may be used to get the misprediction cost via the Retire_Latency field of PEBS. It fires on the instruction that immediately follows the mispredicted branch.",
244*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
245dfc83cc8SIan Rogers        "EventCode": "0xc5",
246dfc83cc8SIan Rogers        "EventName": "BR_MISP_RETIRED.ALL_BRANCHES_COST",
247dfc83cc8SIan Rogers        "PEBS": "1",
248dfc83cc8SIan Rogers        "SampleAfterValue": "400009",
249dfc83cc8SIan Rogers        "UMask": "0x44",
250dfc83cc8SIan Rogers        "Unit": "cpu_core"
251dfc83cc8SIan Rogers    },
252dfc83cc8SIan Rogers    {
253dfc83cc8SIan Rogers        "BriefDescription": "Counts the number of mispredicted JCC (Jump on Conditional Code) branch instructions retired.",
254*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
255dfc83cc8SIan Rogers        "EventCode": "0xc5",
256dfc83cc8SIan Rogers        "EventName": "BR_MISP_RETIRED.COND",
257dfc83cc8SIan Rogers        "SampleAfterValue": "200003",
258dfc83cc8SIan Rogers        "UMask": "0x7e",
259dfc83cc8SIan Rogers        "Unit": "cpu_atom"
260dfc83cc8SIan Rogers    },
261dfc83cc8SIan Rogers    {
262dfc83cc8SIan Rogers        "BriefDescription": "Mispredicted conditional branch instructions retired.",
263*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
264dfc83cc8SIan Rogers        "EventCode": "0xc5",
265dfc83cc8SIan Rogers        "EventName": "BR_MISP_RETIRED.COND",
266dfc83cc8SIan Rogers        "PEBS": "1",
267dfc83cc8SIan Rogers        "PublicDescription": "Counts mispredicted conditional branch instructions retired.",
268dfc83cc8SIan Rogers        "SampleAfterValue": "400009",
269dfc83cc8SIan Rogers        "UMask": "0x11",
270dfc83cc8SIan Rogers        "Unit": "cpu_core"
271dfc83cc8SIan Rogers    },
272dfc83cc8SIan Rogers    {
273dfc83cc8SIan Rogers        "BriefDescription": "Mispredicted conditional branch instructions retired. This precise event may be used to get the misprediction cost via the Retire_Latency field of PEBS. It fires on the instruction that immediately follows the mispredicted branch.",
274*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
275dfc83cc8SIan Rogers        "EventCode": "0xc5",
276dfc83cc8SIan Rogers        "EventName": "BR_MISP_RETIRED.COND_COST",
277dfc83cc8SIan Rogers        "PEBS": "1",
278dfc83cc8SIan Rogers        "SampleAfterValue": "400009",
279dfc83cc8SIan Rogers        "UMask": "0x51",
280dfc83cc8SIan Rogers        "Unit": "cpu_core"
281dfc83cc8SIan Rogers    },
282dfc83cc8SIan Rogers    {
283dfc83cc8SIan Rogers        "BriefDescription": "Mispredicted non-taken conditional branch instructions retired.",
284*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
285dfc83cc8SIan Rogers        "EventCode": "0xc5",
286dfc83cc8SIan Rogers        "EventName": "BR_MISP_RETIRED.COND_NTAKEN",
287dfc83cc8SIan Rogers        "PEBS": "1",
288dfc83cc8SIan Rogers        "PublicDescription": "Counts the number of conditional branch instructions retired that were mispredicted and the branch direction was not taken.",
289dfc83cc8SIan Rogers        "SampleAfterValue": "400009",
290dfc83cc8SIan Rogers        "UMask": "0x10",
291dfc83cc8SIan Rogers        "Unit": "cpu_core"
292dfc83cc8SIan Rogers    },
293dfc83cc8SIan Rogers    {
294dfc83cc8SIan Rogers        "BriefDescription": "Mispredicted non-taken conditional branch instructions retired. This precise event may be used to get the misprediction cost via the Retire_Latency field of PEBS. It fires on the instruction that immediately follows the mispredicted branch.",
295*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
296dfc83cc8SIan Rogers        "EventCode": "0xc5",
297dfc83cc8SIan Rogers        "EventName": "BR_MISP_RETIRED.COND_NTAKEN_COST",
298dfc83cc8SIan Rogers        "PEBS": "1",
299dfc83cc8SIan Rogers        "SampleAfterValue": "400009",
300dfc83cc8SIan Rogers        "UMask": "0x50",
301dfc83cc8SIan Rogers        "Unit": "cpu_core"
302dfc83cc8SIan Rogers    },
303dfc83cc8SIan Rogers    {
30424773076SIan Rogers        "BriefDescription": "Counts the number of mispredicted taken JCC (Jump on Conditional Code) branch instructions retired.",
305*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
30624773076SIan Rogers        "EventCode": "0xc5",
30724773076SIan Rogers        "EventName": "BR_MISP_RETIRED.COND_TAKEN",
30824773076SIan Rogers        "SampleAfterValue": "200003",
30924773076SIan Rogers        "UMask": "0xfe",
31024773076SIan Rogers        "Unit": "cpu_atom"
31124773076SIan Rogers    },
31224773076SIan Rogers    {
313dfc83cc8SIan Rogers        "BriefDescription": "number of branch instructions retired that were mispredicted and taken.",
314*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
315dfc83cc8SIan Rogers        "EventCode": "0xc5",
316dfc83cc8SIan Rogers        "EventName": "BR_MISP_RETIRED.COND_TAKEN",
317dfc83cc8SIan Rogers        "PEBS": "1",
318dfc83cc8SIan Rogers        "PublicDescription": "Counts taken conditional mispredicted branch instructions retired.",
319dfc83cc8SIan Rogers        "SampleAfterValue": "400009",
320dfc83cc8SIan Rogers        "UMask": "0x1",
321dfc83cc8SIan Rogers        "Unit": "cpu_core"
322dfc83cc8SIan Rogers    },
323dfc83cc8SIan Rogers    {
324dfc83cc8SIan Rogers        "BriefDescription": "Mispredicted taken conditional branch instructions retired. This precise event may be used to get the misprediction cost via the Retire_Latency field of PEBS. It fires on the instruction that immediately follows the mispredicted branch.",
325*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
326dfc83cc8SIan Rogers        "EventCode": "0xc5",
327dfc83cc8SIan Rogers        "EventName": "BR_MISP_RETIRED.COND_TAKEN_COST",
328dfc83cc8SIan Rogers        "PEBS": "1",
329dfc83cc8SIan Rogers        "SampleAfterValue": "400009",
330dfc83cc8SIan Rogers        "UMask": "0x41",
331dfc83cc8SIan Rogers        "Unit": "cpu_core"
332dfc83cc8SIan Rogers    },
333dfc83cc8SIan Rogers    {
334dfc83cc8SIan Rogers        "BriefDescription": "Counts the number of mispredicted near indirect JMP and near indirect CALL branch instructions retired.",
335*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
336dfc83cc8SIan Rogers        "EventCode": "0xc5",
337dfc83cc8SIan Rogers        "EventName": "BR_MISP_RETIRED.INDIRECT",
338dfc83cc8SIan Rogers        "SampleAfterValue": "200003",
339dfc83cc8SIan Rogers        "UMask": "0xeb",
340dfc83cc8SIan Rogers        "Unit": "cpu_atom"
341dfc83cc8SIan Rogers    },
342dfc83cc8SIan Rogers    {
343dfc83cc8SIan Rogers        "BriefDescription": "Miss-predicted near indirect branch instructions retired (excluding returns)",
344*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
345dfc83cc8SIan Rogers        "EventCode": "0xc5",
346dfc83cc8SIan Rogers        "EventName": "BR_MISP_RETIRED.INDIRECT",
347dfc83cc8SIan Rogers        "PEBS": "1",
348dfc83cc8SIan Rogers        "PublicDescription": "Counts miss-predicted near indirect branch instructions retired excluding returns. TSX abort is an indirect branch.",
349dfc83cc8SIan Rogers        "SampleAfterValue": "100003",
350dfc83cc8SIan Rogers        "UMask": "0x80",
351dfc83cc8SIan Rogers        "Unit": "cpu_core"
352dfc83cc8SIan Rogers    },
353dfc83cc8SIan Rogers    {
354dfc83cc8SIan Rogers        "BriefDescription": "Counts the number of mispredicted near indirect CALL branch instructions retired.",
355*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
356dfc83cc8SIan Rogers        "EventCode": "0xc5",
357dfc83cc8SIan Rogers        "EventName": "BR_MISP_RETIRED.INDIRECT_CALL",
358dfc83cc8SIan Rogers        "SampleAfterValue": "200003",
359dfc83cc8SIan Rogers        "UMask": "0xfb",
360dfc83cc8SIan Rogers        "Unit": "cpu_atom"
361dfc83cc8SIan Rogers    },
362dfc83cc8SIan Rogers    {
363dfc83cc8SIan Rogers        "BriefDescription": "Mispredicted indirect CALL retired.",
364*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
365dfc83cc8SIan Rogers        "EventCode": "0xc5",
366dfc83cc8SIan Rogers        "EventName": "BR_MISP_RETIRED.INDIRECT_CALL",
367dfc83cc8SIan Rogers        "PEBS": "1",
368dfc83cc8SIan Rogers        "PublicDescription": "Counts retired mispredicted indirect (near taken) CALL instructions, including both register and memory indirect.",
369dfc83cc8SIan Rogers        "SampleAfterValue": "400009",
370dfc83cc8SIan Rogers        "UMask": "0x2",
371dfc83cc8SIan Rogers        "Unit": "cpu_core"
372dfc83cc8SIan Rogers    },
373dfc83cc8SIan Rogers    {
374dfc83cc8SIan Rogers        "BriefDescription": "Mispredicted indirect CALL retired. This precise event may be used to get the misprediction cost via the Retire_Latency field of PEBS. It fires on the instruction that immediately follows the mispredicted branch.",
375*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
376dfc83cc8SIan Rogers        "EventCode": "0xc5",
377dfc83cc8SIan Rogers        "EventName": "BR_MISP_RETIRED.INDIRECT_CALL_COST",
378dfc83cc8SIan Rogers        "PEBS": "1",
379dfc83cc8SIan Rogers        "SampleAfterValue": "400009",
380dfc83cc8SIan Rogers        "UMask": "0x42",
381dfc83cc8SIan Rogers        "Unit": "cpu_core"
382dfc83cc8SIan Rogers    },
383dfc83cc8SIan Rogers    {
384dfc83cc8SIan Rogers        "BriefDescription": "Mispredicted near indirect branch instructions retired (excluding returns). This precise event may be used to get the misprediction cost via the Retire_Latency field of PEBS. It fires on the instruction that immediately follows the mispredicted branch.",
385*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
386dfc83cc8SIan Rogers        "EventCode": "0xc5",
387dfc83cc8SIan Rogers        "EventName": "BR_MISP_RETIRED.INDIRECT_COST",
388dfc83cc8SIan Rogers        "PEBS": "1",
389dfc83cc8SIan Rogers        "SampleAfterValue": "100003",
390dfc83cc8SIan Rogers        "UMask": "0xc0",
391dfc83cc8SIan Rogers        "Unit": "cpu_core"
392dfc83cc8SIan Rogers    },
393dfc83cc8SIan Rogers    {
39424773076SIan Rogers        "BriefDescription": "Counts the number of mispredicted near taken branch instructions retired.",
395*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
39624773076SIan Rogers        "EventCode": "0xc5",
39724773076SIan Rogers        "EventName": "BR_MISP_RETIRED.NEAR_TAKEN",
39824773076SIan Rogers        "SampleAfterValue": "200003",
39924773076SIan Rogers        "UMask": "0x80",
40024773076SIan Rogers        "Unit": "cpu_atom"
40124773076SIan Rogers    },
40224773076SIan Rogers    {
403dfc83cc8SIan Rogers        "BriefDescription": "Number of near branch instructions retired that were mispredicted and taken.",
404*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
405dfc83cc8SIan Rogers        "EventCode": "0xc5",
406dfc83cc8SIan Rogers        "EventName": "BR_MISP_RETIRED.NEAR_TAKEN",
407dfc83cc8SIan Rogers        "PEBS": "1",
408dfc83cc8SIan Rogers        "PublicDescription": "Counts number of near branch instructions retired that were mispredicted and taken.",
409dfc83cc8SIan Rogers        "SampleAfterValue": "400009",
410dfc83cc8SIan Rogers        "UMask": "0x20",
411dfc83cc8SIan Rogers        "Unit": "cpu_core"
412dfc83cc8SIan Rogers    },
413dfc83cc8SIan Rogers    {
414dfc83cc8SIan Rogers        "BriefDescription": "Mispredicted taken near branch instructions retired. This precise event may be used to get the misprediction cost via the Retire_Latency field of PEBS. It fires on the instruction that immediately follows the mispredicted branch.",
415*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
416dfc83cc8SIan Rogers        "EventCode": "0xc5",
417dfc83cc8SIan Rogers        "EventName": "BR_MISP_RETIRED.NEAR_TAKEN_COST",
418dfc83cc8SIan Rogers        "PEBS": "1",
419dfc83cc8SIan Rogers        "SampleAfterValue": "400009",
420dfc83cc8SIan Rogers        "UMask": "0x60",
421dfc83cc8SIan Rogers        "Unit": "cpu_core"
422dfc83cc8SIan Rogers    },
423dfc83cc8SIan Rogers    {
424ab0cfb79SIan Rogers        "BriefDescription": "This event counts the number of mispredicted ret instructions retired. Non PEBS",
425*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
426ab0cfb79SIan Rogers        "EventCode": "0xc5",
427ab0cfb79SIan Rogers        "EventName": "BR_MISP_RETIRED.RET",
428ab0cfb79SIan Rogers        "PEBS": "1",
429ab0cfb79SIan Rogers        "PublicDescription": "This is a non-precise version (that is, does not use PEBS) of the event that counts mispredicted return instructions retired.",
430ab0cfb79SIan Rogers        "SampleAfterValue": "100007",
431ab0cfb79SIan Rogers        "UMask": "0x8",
432ab0cfb79SIan Rogers        "Unit": "cpu_core"
433ab0cfb79SIan Rogers    },
434ab0cfb79SIan Rogers    {
435dfc83cc8SIan Rogers        "BriefDescription": "Counts the number of mispredicted near RET branch instructions retired.",
436*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
437dfc83cc8SIan Rogers        "EventCode": "0xc5",
438dfc83cc8SIan Rogers        "EventName": "BR_MISP_RETIRED.RETURN",
439dfc83cc8SIan Rogers        "SampleAfterValue": "200003",
440dfc83cc8SIan Rogers        "UMask": "0xf7",
441dfc83cc8SIan Rogers        "Unit": "cpu_atom"
442dfc83cc8SIan Rogers    },
443dfc83cc8SIan Rogers    {
444dfc83cc8SIan Rogers        "BriefDescription": "Mispredicted ret instructions retired. This precise event may be used to get the misprediction cost via the Retire_Latency field of PEBS. It fires on the instruction that immediately follows the mispredicted branch.",
445*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
446dfc83cc8SIan Rogers        "EventCode": "0xc5",
447dfc83cc8SIan Rogers        "EventName": "BR_MISP_RETIRED.RET_COST",
448dfc83cc8SIan Rogers        "PEBS": "1",
449dfc83cc8SIan Rogers        "SampleAfterValue": "100007",
450dfc83cc8SIan Rogers        "UMask": "0x48",
451dfc83cc8SIan Rogers        "Unit": "cpu_core"
452dfc83cc8SIan Rogers    },
453dfc83cc8SIan Rogers    {
454ab0cfb79SIan Rogers        "BriefDescription": "Core clocks when the thread is in the C0.1 light-weight slower wakeup time but more power saving optimized state.",
455*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
456ab0cfb79SIan Rogers        "EventCode": "0xec",
457ab0cfb79SIan Rogers        "EventName": "CPU_CLK_UNHALTED.C01",
458ab0cfb79SIan Rogers        "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.",
459ab0cfb79SIan Rogers        "SampleAfterValue": "2000003",
460ab0cfb79SIan Rogers        "UMask": "0x10",
461ab0cfb79SIan Rogers        "Unit": "cpu_core"
462ab0cfb79SIan Rogers    },
463ab0cfb79SIan Rogers    {
464ab0cfb79SIan Rogers        "BriefDescription": "Core clocks when the thread is in the C0.2 light-weight faster wakeup time but less power saving optimized state.",
465*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
466ab0cfb79SIan Rogers        "EventCode": "0xec",
467ab0cfb79SIan Rogers        "EventName": "CPU_CLK_UNHALTED.C02",
468ab0cfb79SIan Rogers        "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.",
469ab0cfb79SIan Rogers        "SampleAfterValue": "2000003",
470ab0cfb79SIan Rogers        "UMask": "0x20",
471ab0cfb79SIan Rogers        "Unit": "cpu_core"
472ab0cfb79SIan Rogers    },
473ab0cfb79SIan Rogers    {
474ab0cfb79SIan Rogers        "BriefDescription": "Core clocks when the thread is in the C0.1 or C0.2 or running a PAUSE in C0 ACPI state.",
475*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
476ab0cfb79SIan Rogers        "EventCode": "0xec",
477ab0cfb79SIan Rogers        "EventName": "CPU_CLK_UNHALTED.C0_WAIT",
478ab0cfb79SIan Rogers        "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.",
479ab0cfb79SIan Rogers        "SampleAfterValue": "2000003",
480ab0cfb79SIan Rogers        "UMask": "0x70",
481ab0cfb79SIan Rogers        "Unit": "cpu_core"
482ab0cfb79SIan Rogers    },
483ab0cfb79SIan Rogers    {
4841ab4ef06SIan Rogers        "BriefDescription": "Fixed Counter: Counts the number of unhalted core clock cycles",
485*3323532aSIan Rogers        "Counter": "Fixed counter 1",
4861ab4ef06SIan Rogers        "EventName": "CPU_CLK_UNHALTED.CORE",
4871ab4ef06SIan Rogers        "SampleAfterValue": "2000003",
4881ab4ef06SIan Rogers        "UMask": "0x2",
4891ab4ef06SIan Rogers        "Unit": "cpu_atom"
4901ab4ef06SIan Rogers    },
4911ab4ef06SIan Rogers    {
4921ab4ef06SIan Rogers        "BriefDescription": "Counts the number of unhalted core clock cycles [This event is alias to CPU_CLK_UNHALTED.THREAD_P]",
493*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
4941ab4ef06SIan Rogers        "EventCode": "0x3c",
4951ab4ef06SIan Rogers        "EventName": "CPU_CLK_UNHALTED.CORE_P",
4961ab4ef06SIan Rogers        "SampleAfterValue": "2000003",
4971ab4ef06SIan Rogers        "Unit": "cpu_atom"
4981ab4ef06SIan Rogers    },
4991ab4ef06SIan Rogers    {
500dfc83cc8SIan Rogers        "BriefDescription": "Cycle counts are evenly distributed between active threads in the Core.",
501*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
502dfc83cc8SIan Rogers        "EventCode": "0xec",
503dfc83cc8SIan Rogers        "EventName": "CPU_CLK_UNHALTED.DISTRIBUTED",
504dfc83cc8SIan Rogers        "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.",
505dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
506dfc83cc8SIan Rogers        "UMask": "0x2",
507dfc83cc8SIan Rogers        "Unit": "cpu_core"
508dfc83cc8SIan Rogers    },
509dfc83cc8SIan Rogers    {
510dfc83cc8SIan Rogers        "BriefDescription": "Core crystal clock cycles when this thread is unhalted and the other thread is halted.",
511*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
512dfc83cc8SIan Rogers        "EventCode": "0x3c",
513dfc83cc8SIan Rogers        "EventName": "CPU_CLK_UNHALTED.ONE_THREAD_ACTIVE",
514dfc83cc8SIan Rogers        "PublicDescription": "Counts Core crystal clock cycles when current thread is unhalted and the other thread is halted.",
515dfc83cc8SIan Rogers        "SampleAfterValue": "25003",
516dfc83cc8SIan Rogers        "UMask": "0x2",
517dfc83cc8SIan Rogers        "Unit": "cpu_core"
518dfc83cc8SIan Rogers    },
519dfc83cc8SIan Rogers    {
520ab0cfb79SIan Rogers        "BriefDescription": "CPU_CLK_UNHALTED.PAUSE",
521*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
522ab0cfb79SIan Rogers        "EventCode": "0xec",
523ab0cfb79SIan Rogers        "EventName": "CPU_CLK_UNHALTED.PAUSE",
524ab0cfb79SIan Rogers        "SampleAfterValue": "2000003",
525ab0cfb79SIan Rogers        "UMask": "0x40",
526ab0cfb79SIan Rogers        "Unit": "cpu_core"
527ab0cfb79SIan Rogers    },
528ab0cfb79SIan Rogers    {
529ab0cfb79SIan Rogers        "BriefDescription": "CPU_CLK_UNHALTED.PAUSE_INST",
530*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
531ab0cfb79SIan Rogers        "CounterMask": "1",
532ab0cfb79SIan Rogers        "EdgeDetect": "1",
533ab0cfb79SIan Rogers        "EventCode": "0xec",
534ab0cfb79SIan Rogers        "EventName": "CPU_CLK_UNHALTED.PAUSE_INST",
535ab0cfb79SIan Rogers        "SampleAfterValue": "2000003",
536ab0cfb79SIan Rogers        "UMask": "0x40",
537ab0cfb79SIan Rogers        "Unit": "cpu_core"
538ab0cfb79SIan Rogers    },
539ab0cfb79SIan Rogers    {
540dfc83cc8SIan Rogers        "BriefDescription": "Core crystal clock cycles. Cycle counts are evenly distributed between active threads in the Core.",
541*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
542dfc83cc8SIan Rogers        "EventCode": "0x3c",
543dfc83cc8SIan Rogers        "EventName": "CPU_CLK_UNHALTED.REF_DISTRIBUTED",
544dfc83cc8SIan Rogers        "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.",
545dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
546dfc83cc8SIan Rogers        "UMask": "0x8",
547dfc83cc8SIan Rogers        "Unit": "cpu_core"
548dfc83cc8SIan Rogers    },
549dfc83cc8SIan Rogers    {
5501ab4ef06SIan Rogers        "BriefDescription": "Fixed Counter: Counts the number of unhalted reference clock cycles",
551*3323532aSIan Rogers        "Counter": "Fixed counter 2",
5521ab4ef06SIan Rogers        "EventName": "CPU_CLK_UNHALTED.REF_TSC",
5531ab4ef06SIan Rogers        "SampleAfterValue": "2000003",
5541ab4ef06SIan Rogers        "UMask": "0x3",
5551ab4ef06SIan Rogers        "Unit": "cpu_atom"
5561ab4ef06SIan Rogers    },
5571ab4ef06SIan Rogers    {
5585362e4d1SIan Rogers        "BriefDescription": "Reference cycles when the core is not in halt state.",
559*3323532aSIan Rogers        "Counter": "Fixed counter 2",
5605362e4d1SIan Rogers        "EventName": "CPU_CLK_UNHALTED.REF_TSC",
561591530c0SIan Rogers        "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.",
5625362e4d1SIan Rogers        "SampleAfterValue": "2000003",
5635362e4d1SIan Rogers        "UMask": "0x3",
5645362e4d1SIan Rogers        "Unit": "cpu_core"
5655362e4d1SIan Rogers    },
5665362e4d1SIan Rogers    {
567dfc83cc8SIan Rogers        "BriefDescription": "Counts the number of unhalted reference clock cycles at TSC frequency.",
568*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
569dfc83cc8SIan Rogers        "EventCode": "0x3c",
570dfc83cc8SIan Rogers        "EventName": "CPU_CLK_UNHALTED.REF_TSC_P",
571dfc83cc8SIan Rogers        "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.",
572dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
573dfc83cc8SIan Rogers        "UMask": "0x1",
574dfc83cc8SIan Rogers        "Unit": "cpu_atom"
575dfc83cc8SIan Rogers    },
576dfc83cc8SIan Rogers    {
5775362e4d1SIan Rogers        "BriefDescription": "Reference cycles when the core is not in halt state.",
578*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
5795362e4d1SIan Rogers        "EventCode": "0x3c",
5805362e4d1SIan Rogers        "EventName": "CPU_CLK_UNHALTED.REF_TSC_P",
581591530c0SIan Rogers        "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.",
5825362e4d1SIan Rogers        "SampleAfterValue": "2000003",
5835362e4d1SIan Rogers        "UMask": "0x1",
5845362e4d1SIan Rogers        "Unit": "cpu_core"
5855362e4d1SIan Rogers    },
5865362e4d1SIan Rogers    {
5871ab4ef06SIan Rogers        "BriefDescription": "Fixed Counter: Counts the number of unhalted core clock cycles",
588*3323532aSIan Rogers        "Counter": "Fixed counter 1",
5891ab4ef06SIan Rogers        "EventName": "CPU_CLK_UNHALTED.THREAD",
5901ab4ef06SIan Rogers        "SampleAfterValue": "2000003",
5911ab4ef06SIan Rogers        "UMask": "0x2",
5921ab4ef06SIan Rogers        "Unit": "cpu_atom"
5931ab4ef06SIan Rogers    },
5941ab4ef06SIan Rogers    {
5951ab4ef06SIan Rogers        "BriefDescription": "Core cycles when the thread is not in halt state",
596*3323532aSIan Rogers        "Counter": "Fixed counter 1",
5971ab4ef06SIan Rogers        "EventName": "CPU_CLK_UNHALTED.THREAD",
598591530c0SIan Rogers        "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.",
5991ab4ef06SIan Rogers        "SampleAfterValue": "2000003",
6001ab4ef06SIan Rogers        "UMask": "0x2",
6011ab4ef06SIan Rogers        "Unit": "cpu_core"
6021ab4ef06SIan Rogers    },
6031ab4ef06SIan Rogers    {
6045362e4d1SIan Rogers        "BriefDescription": "Counts the number of unhalted core clock cycles [This event is alias to CPU_CLK_UNHALTED.CORE_P]",
605*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
6061ab4ef06SIan Rogers        "EventCode": "0x3c",
6071ab4ef06SIan Rogers        "EventName": "CPU_CLK_UNHALTED.THREAD_P",
6085362e4d1SIan Rogers        "SampleAfterValue": "2000003",
6095362e4d1SIan Rogers        "Unit": "cpu_atom"
6105362e4d1SIan Rogers    },
6115362e4d1SIan Rogers    {
6125362e4d1SIan Rogers        "BriefDescription": "Thread cycles when thread is not in halt state",
613*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
6145362e4d1SIan Rogers        "EventCode": "0x3c",
6155362e4d1SIan Rogers        "EventName": "CPU_CLK_UNHALTED.THREAD_P",
616591530c0SIan Rogers        "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.",
6171ab4ef06SIan Rogers        "SampleAfterValue": "2000003",
6181ab4ef06SIan Rogers        "Unit": "cpu_core"
6191ab4ef06SIan Rogers    },
6201ab4ef06SIan Rogers    {
621dfc83cc8SIan Rogers        "BriefDescription": "Cycles while L1 cache miss demand load is outstanding.",
622*3323532aSIan Rogers        "Counter": "0,1,2,3",
623dfc83cc8SIan Rogers        "CounterMask": "8",
624dfc83cc8SIan Rogers        "EventCode": "0xa3",
625dfc83cc8SIan Rogers        "EventName": "CYCLE_ACTIVITY.CYCLES_L1D_MISS",
626dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
627dfc83cc8SIan Rogers        "UMask": "0x8",
628dfc83cc8SIan Rogers        "Unit": "cpu_core"
629dfc83cc8SIan Rogers    },
630dfc83cc8SIan Rogers    {
631dfc83cc8SIan Rogers        "BriefDescription": "Cycles while L2 cache miss demand load is outstanding.",
632*3323532aSIan Rogers        "Counter": "0,1,2,3",
633dfc83cc8SIan Rogers        "CounterMask": "1",
634dfc83cc8SIan Rogers        "EventCode": "0xa3",
635dfc83cc8SIan Rogers        "EventName": "CYCLE_ACTIVITY.CYCLES_L2_MISS",
636dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
637dfc83cc8SIan Rogers        "UMask": "0x1",
638dfc83cc8SIan Rogers        "Unit": "cpu_core"
639dfc83cc8SIan Rogers    },
640dfc83cc8SIan Rogers    {
641dfc83cc8SIan Rogers        "BriefDescription": "Cycles while memory subsystem has an outstanding load.",
642*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
643dfc83cc8SIan Rogers        "CounterMask": "16",
644dfc83cc8SIan Rogers        "EventCode": "0xa3",
645dfc83cc8SIan Rogers        "EventName": "CYCLE_ACTIVITY.CYCLES_MEM_ANY",
646dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
647dfc83cc8SIan Rogers        "UMask": "0x10",
648dfc83cc8SIan Rogers        "Unit": "cpu_core"
649dfc83cc8SIan Rogers    },
650dfc83cc8SIan Rogers    {
651dfc83cc8SIan Rogers        "BriefDescription": "Execution stalls while L1 cache miss demand load is outstanding.",
652*3323532aSIan Rogers        "Counter": "0,1,2,3",
653dfc83cc8SIan Rogers        "CounterMask": "12",
654dfc83cc8SIan Rogers        "EventCode": "0xa3",
655dfc83cc8SIan Rogers        "EventName": "CYCLE_ACTIVITY.STALLS_L1D_MISS",
656dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
657dfc83cc8SIan Rogers        "UMask": "0xc",
658dfc83cc8SIan Rogers        "Unit": "cpu_core"
659dfc83cc8SIan Rogers    },
660dfc83cc8SIan Rogers    {
661dfc83cc8SIan Rogers        "BriefDescription": "Execution stalls while L2 cache miss demand load is outstanding.",
662*3323532aSIan Rogers        "Counter": "0,1,2,3",
663dfc83cc8SIan Rogers        "CounterMask": "5",
664dfc83cc8SIan Rogers        "EventCode": "0xa3",
665dfc83cc8SIan Rogers        "EventName": "CYCLE_ACTIVITY.STALLS_L2_MISS",
666dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
667dfc83cc8SIan Rogers        "UMask": "0x5",
668dfc83cc8SIan Rogers        "Unit": "cpu_core"
669dfc83cc8SIan Rogers    },
670dfc83cc8SIan Rogers    {
671dfc83cc8SIan Rogers        "BriefDescription": "Total execution stalls.",
672*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
673dfc83cc8SIan Rogers        "CounterMask": "4",
674dfc83cc8SIan Rogers        "EventCode": "0xa3",
675dfc83cc8SIan Rogers        "EventName": "CYCLE_ACTIVITY.STALLS_TOTAL",
676dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
677dfc83cc8SIan Rogers        "UMask": "0x4",
678dfc83cc8SIan Rogers        "Unit": "cpu_core"
679dfc83cc8SIan Rogers    },
680dfc83cc8SIan Rogers    {
681dfc83cc8SIan Rogers        "BriefDescription": "Cycles total of 1 uop is executed on all ports and Reservation Station was not empty.",
682*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
683dfc83cc8SIan Rogers        "EventCode": "0xa6",
684dfc83cc8SIan Rogers        "EventName": "EXE_ACTIVITY.1_PORTS_UTIL",
685dfc83cc8SIan Rogers        "PublicDescription": "Counts cycles during which a total of 1 uop was executed on all ports and Reservation Station (RS) was not empty.",
686dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
687dfc83cc8SIan Rogers        "UMask": "0x2",
688dfc83cc8SIan Rogers        "Unit": "cpu_core"
689dfc83cc8SIan Rogers    },
690dfc83cc8SIan Rogers    {
691*3323532aSIan Rogers        "BriefDescription": "Cycles total of 2 or 3 uops are executed on all ports and Reservation Station (RS) was not empty.",
692*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
693*3323532aSIan Rogers        "EventCode": "0xa6",
694*3323532aSIan Rogers        "EventName": "EXE_ACTIVITY.2_3_PORTS_UTIL",
695*3323532aSIan Rogers        "SampleAfterValue": "2000003",
696*3323532aSIan Rogers        "UMask": "0xc",
697*3323532aSIan Rogers        "Unit": "cpu_core"
698*3323532aSIan Rogers    },
699*3323532aSIan Rogers    {
700dfc83cc8SIan Rogers        "BriefDescription": "Cycles total of 2 uops are executed on all ports and Reservation Station was not empty.",
701*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
702dfc83cc8SIan Rogers        "EventCode": "0xa6",
703dfc83cc8SIan Rogers        "EventName": "EXE_ACTIVITY.2_PORTS_UTIL",
704dfc83cc8SIan Rogers        "PublicDescription": "Counts cycles during which a total of 2 uops were executed on all ports and Reservation Station (RS) was not empty.",
705dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
706dfc83cc8SIan Rogers        "UMask": "0x4",
707dfc83cc8SIan Rogers        "Unit": "cpu_core"
708dfc83cc8SIan Rogers    },
709dfc83cc8SIan Rogers    {
710dfc83cc8SIan Rogers        "BriefDescription": "Cycles total of 3 uops are executed on all ports and Reservation Station was not empty.",
711*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
712dfc83cc8SIan Rogers        "EventCode": "0xa6",
713dfc83cc8SIan Rogers        "EventName": "EXE_ACTIVITY.3_PORTS_UTIL",
714dfc83cc8SIan Rogers        "PublicDescription": "Cycles total of 3 uops are executed on all ports and Reservation Station (RS) was not empty.",
715dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
716dfc83cc8SIan Rogers        "UMask": "0x8",
717dfc83cc8SIan Rogers        "Unit": "cpu_core"
718dfc83cc8SIan Rogers    },
719dfc83cc8SIan Rogers    {
720dfc83cc8SIan Rogers        "BriefDescription": "Cycles total of 4 uops are executed on all ports and Reservation Station was not empty.",
721*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
722dfc83cc8SIan Rogers        "EventCode": "0xa6",
723dfc83cc8SIan Rogers        "EventName": "EXE_ACTIVITY.4_PORTS_UTIL",
724dfc83cc8SIan Rogers        "PublicDescription": "Cycles total of 4 uops are executed on all ports and Reservation Station (RS) was not empty.",
725dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
726dfc83cc8SIan Rogers        "UMask": "0x10",
727dfc83cc8SIan Rogers        "Unit": "cpu_core"
728dfc83cc8SIan Rogers    },
729dfc83cc8SIan Rogers    {
730dfc83cc8SIan Rogers        "BriefDescription": "Execution stalls while memory subsystem has an outstanding load.",
731*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
732dfc83cc8SIan Rogers        "CounterMask": "5",
733dfc83cc8SIan Rogers        "EventCode": "0xa6",
734dfc83cc8SIan Rogers        "EventName": "EXE_ACTIVITY.BOUND_ON_LOADS",
735dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
736dfc83cc8SIan Rogers        "UMask": "0x21",
737dfc83cc8SIan Rogers        "Unit": "cpu_core"
738dfc83cc8SIan Rogers    },
739dfc83cc8SIan Rogers    {
740dfc83cc8SIan Rogers        "BriefDescription": "Cycles where the Store Buffer was full and no loads caused an execution stall.",
741*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
742dfc83cc8SIan Rogers        "CounterMask": "2",
743dfc83cc8SIan Rogers        "EventCode": "0xa6",
744dfc83cc8SIan Rogers        "EventName": "EXE_ACTIVITY.BOUND_ON_STORES",
745dfc83cc8SIan Rogers        "PublicDescription": "Counts cycles where the Store Buffer was full and no loads caused an execution stall.",
746dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
747dfc83cc8SIan Rogers        "UMask": "0x40",
748dfc83cc8SIan Rogers        "Unit": "cpu_core"
749dfc83cc8SIan Rogers    },
750dfc83cc8SIan Rogers    {
751dfc83cc8SIan Rogers        "BriefDescription": "Cycles no uop executed while RS was not empty, the SB was not full and there was no outstanding load.",
752*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
753dfc83cc8SIan Rogers        "EventCode": "0xa6",
754dfc83cc8SIan Rogers        "EventName": "EXE_ACTIVITY.EXE_BOUND_0_PORTS",
755dfc83cc8SIan Rogers        "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.",
756dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
757dfc83cc8SIan Rogers        "UMask": "0x80",
758dfc83cc8SIan Rogers        "Unit": "cpu_core"
759dfc83cc8SIan Rogers    },
760dfc83cc8SIan Rogers    {
761dfc83cc8SIan Rogers        "BriefDescription": "Instruction decoders utilized in a cycle",
762*3323532aSIan Rogers        "Counter": "0,1,2,3",
763dfc83cc8SIan Rogers        "EventCode": "0x75",
764dfc83cc8SIan Rogers        "EventName": "INST_DECODED.DECODERS",
765dfc83cc8SIan Rogers        "PublicDescription": "Number of decoders utilized in a cycle when the MITE (legacy decode pipeline) fetches instructions.",
766dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
767dfc83cc8SIan Rogers        "UMask": "0x1",
768dfc83cc8SIan Rogers        "Unit": "cpu_core"
769dfc83cc8SIan Rogers    },
770dfc83cc8SIan Rogers    {
7715362e4d1SIan Rogers        "BriefDescription": "Fixed Counter: Counts the number of instructions retired",
772*3323532aSIan Rogers        "Counter": "Fixed counter 0",
7731ab4ef06SIan Rogers        "EventName": "INST_RETIRED.ANY",
7741ab4ef06SIan Rogers        "PEBS": "1",
7755362e4d1SIan Rogers        "SampleAfterValue": "2000003",
7765362e4d1SIan Rogers        "UMask": "0x1",
7775362e4d1SIan Rogers        "Unit": "cpu_atom"
7785362e4d1SIan Rogers    },
7795362e4d1SIan Rogers    {
7805362e4d1SIan Rogers        "BriefDescription": "Number of instructions retired. Fixed Counter - architectural event",
781*3323532aSIan Rogers        "Counter": "Fixed counter 0",
7825362e4d1SIan Rogers        "EventName": "INST_RETIRED.ANY",
7835362e4d1SIan Rogers        "PEBS": "1",
784591530c0SIan Rogers        "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.",
7851ab4ef06SIan Rogers        "SampleAfterValue": "2000003",
7861ab4ef06SIan Rogers        "UMask": "0x1",
7871ab4ef06SIan Rogers        "Unit": "cpu_core"
7881ab4ef06SIan Rogers    },
7891ab4ef06SIan Rogers    {
7905362e4d1SIan Rogers        "BriefDescription": "Counts the number of instructions retired",
791*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
7921ab4ef06SIan Rogers        "EventCode": "0xc0",
7931ab4ef06SIan Rogers        "EventName": "INST_RETIRED.ANY_P",
7945362e4d1SIan Rogers        "SampleAfterValue": "2000003",
7955362e4d1SIan Rogers        "Unit": "cpu_atom"
7965362e4d1SIan Rogers    },
7975362e4d1SIan Rogers    {
7985362e4d1SIan Rogers        "BriefDescription": "Number of instructions retired. General Counter - architectural event",
799*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
8005362e4d1SIan Rogers        "EventCode": "0xc0",
8015362e4d1SIan Rogers        "EventName": "INST_RETIRED.ANY_P",
8025362e4d1SIan Rogers        "PEBS": "1",
803591530c0SIan Rogers        "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.",
8041ab4ef06SIan Rogers        "SampleAfterValue": "2000003",
8051ab4ef06SIan Rogers        "Unit": "cpu_core"
8061ab4ef06SIan Rogers    },
8071ab4ef06SIan Rogers    {
808dfc83cc8SIan Rogers        "BriefDescription": "INST_RETIRED.MACRO_FUSED",
809*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
810dfc83cc8SIan Rogers        "EventCode": "0xc0",
811dfc83cc8SIan Rogers        "EventName": "INST_RETIRED.MACRO_FUSED",
8121d262a85SIan Rogers        "PEBS": "1",
813dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
814dfc83cc8SIan Rogers        "UMask": "0x10",
815dfc83cc8SIan Rogers        "Unit": "cpu_core"
816dfc83cc8SIan Rogers    },
817dfc83cc8SIan Rogers    {
818ab0cfb79SIan Rogers        "BriefDescription": "Retired NOP instructions.",
819*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
820ab0cfb79SIan Rogers        "EventCode": "0xc0",
821ab0cfb79SIan Rogers        "EventName": "INST_RETIRED.NOP",
8221d262a85SIan Rogers        "PEBS": "1",
823ab0cfb79SIan Rogers        "PublicDescription": "Counts all retired NOP or ENDBR32/64 or PREFETCHIT0/1 instructions",
824ab0cfb79SIan Rogers        "SampleAfterValue": "2000003",
825ab0cfb79SIan Rogers        "UMask": "0x2",
826ab0cfb79SIan Rogers        "Unit": "cpu_core"
827ab0cfb79SIan Rogers    },
828ab0cfb79SIan Rogers    {
829dfc83cc8SIan Rogers        "BriefDescription": "Precise instruction retired with PEBS precise-distribution",
830*3323532aSIan Rogers        "Counter": "Fixed counter 0",
831dfc83cc8SIan Rogers        "EventName": "INST_RETIRED.PREC_DIST",
832dfc83cc8SIan Rogers        "PEBS": "1",
833dfc83cc8SIan Rogers        "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.",
834dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
835dfc83cc8SIan Rogers        "UMask": "0x1",
836dfc83cc8SIan Rogers        "Unit": "cpu_core"
837dfc83cc8SIan Rogers    },
838dfc83cc8SIan Rogers    {
839ab0cfb79SIan Rogers        "BriefDescription": "Iterations of Repeat string retired instructions.",
840*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
841ab0cfb79SIan Rogers        "EventCode": "0xc0",
842ab0cfb79SIan Rogers        "EventName": "INST_RETIRED.REP_ITERATION",
8431d262a85SIan Rogers        "PEBS": "1",
844ab0cfb79SIan Rogers        "PublicDescription": "Number of iterations of Repeat (REP) string retired instructions such as MOVS, CMPS, and SCAS. Each has a byte, word, and doubleword version and string instructions can be repeated using a repetition prefix, REP, that allows their architectural execution to be repeated a number of times as specified by the RCX register. Note the number of iterations is implementation-dependent.",
845ab0cfb79SIan Rogers        "SampleAfterValue": "2000003",
846ab0cfb79SIan Rogers        "UMask": "0x8",
847ab0cfb79SIan Rogers        "Unit": "cpu_core"
848ab0cfb79SIan Rogers    },
849ab0cfb79SIan Rogers    {
850ab0cfb79SIan Rogers        "BriefDescription": "Clears speculative count",
851*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
852ab0cfb79SIan Rogers        "CounterMask": "1",
853ab0cfb79SIan Rogers        "EdgeDetect": "1",
854ab0cfb79SIan Rogers        "EventCode": "0xad",
855ab0cfb79SIan Rogers        "EventName": "INT_MISC.CLEARS_COUNT",
856ab0cfb79SIan Rogers        "PublicDescription": "Counts the number of speculative clears due to any type of branch misprediction or machine clears",
857ab0cfb79SIan Rogers        "SampleAfterValue": "500009",
858ab0cfb79SIan Rogers        "UMask": "0x1",
859ab0cfb79SIan Rogers        "Unit": "cpu_core"
860ab0cfb79SIan Rogers    },
861ab0cfb79SIan Rogers    {
862dfc83cc8SIan Rogers        "BriefDescription": "Counts cycles after recovery from a branch misprediction or machine clear till the first uop is issued from the resteered path.",
863*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
864dfc83cc8SIan Rogers        "EventCode": "0xad",
865dfc83cc8SIan Rogers        "EventName": "INT_MISC.CLEAR_RESTEER_CYCLES",
866dfc83cc8SIan Rogers        "PublicDescription": "Cycles after recovery from a branch misprediction or machine clear till the first uop is issued from the resteered path.",
867dfc83cc8SIan Rogers        "SampleAfterValue": "500009",
868dfc83cc8SIan Rogers        "UMask": "0x80",
869dfc83cc8SIan Rogers        "Unit": "cpu_core"
870dfc83cc8SIan Rogers    },
871dfc83cc8SIan Rogers    {
872dfc83cc8SIan Rogers        "BriefDescription": "Core cycles the allocator was stalled due to recovery from earlier clear event for this thread",
873*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
874dfc83cc8SIan Rogers        "EventCode": "0xad",
875dfc83cc8SIan Rogers        "EventName": "INT_MISC.RECOVERY_CYCLES",
876dfc83cc8SIan Rogers        "PublicDescription": "Counts core cycles when the Resource allocator was stalled due to recovery from an earlier branch misprediction or machine clear event.",
877dfc83cc8SIan Rogers        "SampleAfterValue": "500009",
878dfc83cc8SIan Rogers        "UMask": "0x1",
879dfc83cc8SIan Rogers        "Unit": "cpu_core"
880dfc83cc8SIan Rogers    },
881dfc83cc8SIan Rogers    {
88224773076SIan Rogers        "BriefDescription": "Bubble cycles of BAClear (Unknown Branch).",
883*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
884dfc83cc8SIan Rogers        "EventCode": "0xad",
885dfc83cc8SIan Rogers        "EventName": "INT_MISC.UNKNOWN_BRANCH_CYCLES",
886dfc83cc8SIan Rogers        "MSRIndex": "0x3F7",
887dfc83cc8SIan Rogers        "MSRValue": "0x7",
888dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
889dfc83cc8SIan Rogers        "UMask": "0x40",
890dfc83cc8SIan Rogers        "Unit": "cpu_core"
891dfc83cc8SIan Rogers    },
892dfc83cc8SIan Rogers    {
893dfc83cc8SIan Rogers        "BriefDescription": "TMA slots where uops got dropped",
894*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
895dfc83cc8SIan Rogers        "EventCode": "0xad",
896dfc83cc8SIan Rogers        "EventName": "INT_MISC.UOP_DROPPING",
897dfc83cc8SIan Rogers        "PublicDescription": "Estimated number of Top-down Microarchitecture Analysis slots that got dropped due to non front-end reasons",
898dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
899dfc83cc8SIan Rogers        "UMask": "0x10",
900dfc83cc8SIan Rogers        "Unit": "cpu_core"
901dfc83cc8SIan Rogers    },
902dfc83cc8SIan Rogers    {
903dfc83cc8SIan Rogers        "BriefDescription": "INT_VEC_RETIRED.128BIT",
904*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
905dfc83cc8SIan Rogers        "EventCode": "0xe7",
906dfc83cc8SIan Rogers        "EventName": "INT_VEC_RETIRED.128BIT",
907dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
908dfc83cc8SIan Rogers        "UMask": "0x13",
909dfc83cc8SIan Rogers        "Unit": "cpu_core"
910dfc83cc8SIan Rogers    },
911dfc83cc8SIan Rogers    {
912dfc83cc8SIan Rogers        "BriefDescription": "INT_VEC_RETIRED.256BIT",
913*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
914dfc83cc8SIan Rogers        "EventCode": "0xe7",
915dfc83cc8SIan Rogers        "EventName": "INT_VEC_RETIRED.256BIT",
916dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
917dfc83cc8SIan Rogers        "UMask": "0xac",
918dfc83cc8SIan Rogers        "Unit": "cpu_core"
919dfc83cc8SIan Rogers    },
920dfc83cc8SIan Rogers    {
921dfc83cc8SIan Rogers        "BriefDescription": "integer ADD, SUB, SAD 128-bit vector instructions.",
922*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
923dfc83cc8SIan Rogers        "EventCode": "0xe7",
924dfc83cc8SIan Rogers        "EventName": "INT_VEC_RETIRED.ADD_128",
925dfc83cc8SIan Rogers        "PublicDescription": "Number of retired integer ADD/SUB (regular or horizontal), SAD 128-bit vector instructions.",
926dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
927dfc83cc8SIan Rogers        "UMask": "0x3",
928dfc83cc8SIan Rogers        "Unit": "cpu_core"
929dfc83cc8SIan Rogers    },
930dfc83cc8SIan Rogers    {
931dfc83cc8SIan Rogers        "BriefDescription": "integer ADD, SUB, SAD 256-bit vector instructions.",
932*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
933dfc83cc8SIan Rogers        "EventCode": "0xe7",
934dfc83cc8SIan Rogers        "EventName": "INT_VEC_RETIRED.ADD_256",
935dfc83cc8SIan Rogers        "PublicDescription": "Number of retired integer ADD/SUB (regular or horizontal), SAD 256-bit vector instructions.",
936dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
937dfc83cc8SIan Rogers        "UMask": "0xc",
938dfc83cc8SIan Rogers        "Unit": "cpu_core"
939dfc83cc8SIan Rogers    },
940dfc83cc8SIan Rogers    {
941dfc83cc8SIan Rogers        "BriefDescription": "INT_VEC_RETIRED.MUL_256",
942*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
943dfc83cc8SIan Rogers        "EventCode": "0xe7",
944dfc83cc8SIan Rogers        "EventName": "INT_VEC_RETIRED.MUL_256",
945dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
946dfc83cc8SIan Rogers        "UMask": "0x80",
947dfc83cc8SIan Rogers        "Unit": "cpu_core"
948dfc83cc8SIan Rogers    },
949dfc83cc8SIan Rogers    {
950dfc83cc8SIan Rogers        "BriefDescription": "INT_VEC_RETIRED.SHUFFLES",
951*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
952dfc83cc8SIan Rogers        "EventCode": "0xe7",
953dfc83cc8SIan Rogers        "EventName": "INT_VEC_RETIRED.SHUFFLES",
954dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
955dfc83cc8SIan Rogers        "UMask": "0x40",
956dfc83cc8SIan Rogers        "Unit": "cpu_core"
957dfc83cc8SIan Rogers    },
958dfc83cc8SIan Rogers    {
959dfc83cc8SIan Rogers        "BriefDescription": "INT_VEC_RETIRED.VNNI_128",
960*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
961dfc83cc8SIan Rogers        "EventCode": "0xe7",
962dfc83cc8SIan Rogers        "EventName": "INT_VEC_RETIRED.VNNI_128",
963dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
964dfc83cc8SIan Rogers        "UMask": "0x10",
965dfc83cc8SIan Rogers        "Unit": "cpu_core"
966dfc83cc8SIan Rogers    },
967dfc83cc8SIan Rogers    {
968dfc83cc8SIan Rogers        "BriefDescription": "INT_VEC_RETIRED.VNNI_256",
969*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
970dfc83cc8SIan Rogers        "EventCode": "0xe7",
971dfc83cc8SIan Rogers        "EventName": "INT_VEC_RETIRED.VNNI_256",
972dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
973dfc83cc8SIan Rogers        "UMask": "0x20",
974dfc83cc8SIan Rogers        "Unit": "cpu_core"
975dfc83cc8SIan Rogers    },
976dfc83cc8SIan Rogers    {
977dfc83cc8SIan Rogers        "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.",
978*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
979dfc83cc8SIan Rogers        "EventCode": "0x03",
980dfc83cc8SIan Rogers        "EventName": "LD_BLOCKS.ADDRESS_ALIAS",
981dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
982dfc83cc8SIan Rogers        "UMask": "0x4",
983dfc83cc8SIan Rogers        "Unit": "cpu_atom"
984dfc83cc8SIan Rogers    },
985dfc83cc8SIan Rogers    {
986ab0cfb79SIan Rogers        "BriefDescription": "False dependencies in MOB due to partial compare on address.",
987*3323532aSIan Rogers        "Counter": "0,1,2,3",
988ab0cfb79SIan Rogers        "EventCode": "0x03",
989ab0cfb79SIan Rogers        "EventName": "LD_BLOCKS.ADDRESS_ALIAS",
990ab0cfb79SIan Rogers        "PublicDescription": "Counts the number of times a load got blocked due to false dependencies in MOB due to partial compare on address.",
991ab0cfb79SIan Rogers        "SampleAfterValue": "100003",
992ab0cfb79SIan Rogers        "UMask": "0x4",
993ab0cfb79SIan Rogers        "Unit": "cpu_core"
994ab0cfb79SIan Rogers    },
995ab0cfb79SIan Rogers    {
996dfc83cc8SIan Rogers        "BriefDescription": "Counts the number of retired loads that are blocked because its address exactly matches an older store whose data is not ready.",
997*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
998dfc83cc8SIan Rogers        "EventCode": "0x03",
999dfc83cc8SIan Rogers        "EventName": "LD_BLOCKS.DATA_UNKNOWN",
1000dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
1001dfc83cc8SIan Rogers        "UMask": "0x1",
1002dfc83cc8SIan Rogers        "Unit": "cpu_atom"
1003dfc83cc8SIan Rogers    },
1004dfc83cc8SIan Rogers    {
1005ab0cfb79SIan Rogers        "BriefDescription": "The number of times that split load operations are temporarily blocked because all resources for handling the split accesses are in use.",
1006*3323532aSIan Rogers        "Counter": "0,1,2,3",
1007ab0cfb79SIan Rogers        "EventCode": "0x03",
1008ab0cfb79SIan Rogers        "EventName": "LD_BLOCKS.NO_SR",
1009ab0cfb79SIan Rogers        "PublicDescription": "Counts the number of times that split load operations are temporarily blocked because all resources for handling the split accesses are in use.",
1010ab0cfb79SIan Rogers        "SampleAfterValue": "100003",
1011ab0cfb79SIan Rogers        "UMask": "0x88",
1012ab0cfb79SIan Rogers        "Unit": "cpu_core"
1013ab0cfb79SIan Rogers    },
1014ab0cfb79SIan Rogers    {
1015dfc83cc8SIan Rogers        "BriefDescription": "Counts the number of retired loads that are blocked because its address partially overlapped with an older store.",
1016*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
10171ab4ef06SIan Rogers        "EventCode": "0x03",
10181ab4ef06SIan Rogers        "EventName": "LD_BLOCKS.STORE_FORWARD",
1019dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
1020dfc83cc8SIan Rogers        "UMask": "0x2",
1021dfc83cc8SIan Rogers        "Unit": "cpu_atom"
1022dfc83cc8SIan Rogers    },
1023dfc83cc8SIan Rogers    {
1024ab0cfb79SIan Rogers        "BriefDescription": "Loads blocked due to overlapping with a preceding store that cannot be forwarded.",
1025*3323532aSIan Rogers        "Counter": "0,1,2,3",
1026ab0cfb79SIan Rogers        "EventCode": "0x03",
1027ab0cfb79SIan Rogers        "EventName": "LD_BLOCKS.STORE_FORWARD",
1028ab0cfb79SIan Rogers        "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.",
1029ab0cfb79SIan Rogers        "SampleAfterValue": "100003",
1030ab0cfb79SIan Rogers        "UMask": "0x82",
1031ab0cfb79SIan Rogers        "Unit": "cpu_core"
1032ab0cfb79SIan Rogers    },
1033ab0cfb79SIan Rogers    {
1034*3323532aSIan Rogers        "BriefDescription": "Counts the number of demand load dispatches that hit L1D fill buffer (FB) allocated for software prefetch.",
1035*3323532aSIan Rogers        "Counter": "0,1,2,3",
1036*3323532aSIan Rogers        "EventCode": "0x4c",
1037*3323532aSIan Rogers        "EventName": "LOAD_HIT_PREFETCH.SWPF",
1038*3323532aSIan Rogers        "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.",
1039*3323532aSIan Rogers        "SampleAfterValue": "100003",
1040*3323532aSIan Rogers        "UMask": "0x1",
1041*3323532aSIan Rogers        "Unit": "cpu_core"
1042*3323532aSIan Rogers    },
1043*3323532aSIan Rogers    {
1044dfc83cc8SIan Rogers        "BriefDescription": "Cycles Uops delivered by the LSD, but didn't come from the decoder.",
1045*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
1046dfc83cc8SIan Rogers        "CounterMask": "1",
1047dfc83cc8SIan Rogers        "EventCode": "0xa8",
1048dfc83cc8SIan Rogers        "EventName": "LSD.CYCLES_ACTIVE",
1049dfc83cc8SIan Rogers        "PublicDescription": "Counts the cycles when at least one uop is delivered by the LSD (Loop-stream detector).",
1050dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
1051dfc83cc8SIan Rogers        "UMask": "0x1",
1052dfc83cc8SIan Rogers        "Unit": "cpu_core"
1053dfc83cc8SIan Rogers    },
1054dfc83cc8SIan Rogers    {
1055dfc83cc8SIan Rogers        "BriefDescription": "Cycles optimal number of Uops delivered by the LSD, but did not come from the decoder.",
1056*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
1057dfc83cc8SIan Rogers        "CounterMask": "6",
1058dfc83cc8SIan Rogers        "EventCode": "0xa8",
1059dfc83cc8SIan Rogers        "EventName": "LSD.CYCLES_OK",
1060dfc83cc8SIan Rogers        "PublicDescription": "Counts the cycles when optimal number of uops is delivered by the LSD (Loop-stream detector).",
1061dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
1062dfc83cc8SIan Rogers        "UMask": "0x1",
1063dfc83cc8SIan Rogers        "Unit": "cpu_core"
1064dfc83cc8SIan Rogers    },
1065dfc83cc8SIan Rogers    {
1066dfc83cc8SIan Rogers        "BriefDescription": "Number of Uops delivered by the LSD.",
1067*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
1068dfc83cc8SIan Rogers        "EventCode": "0xa8",
1069dfc83cc8SIan Rogers        "EventName": "LSD.UOPS",
1070dfc83cc8SIan Rogers        "PublicDescription": "Counts the number of uops delivered to the back-end by the LSD(Loop Stream Detector).",
1071dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
1072dfc83cc8SIan Rogers        "UMask": "0x1",
1073dfc83cc8SIan Rogers        "Unit": "cpu_core"
1074dfc83cc8SIan Rogers    },
1075dfc83cc8SIan Rogers    {
1076*3323532aSIan Rogers        "BriefDescription": "Counts the total number of machine clears for any reason including, but not limited to, memory ordering, memory disambiguation, SMC, and FP assist.",
1077*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
1078*3323532aSIan Rogers        "EventCode": "0xc3",
1079*3323532aSIan Rogers        "EventName": "MACHINE_CLEARS.ANY",
1080*3323532aSIan Rogers        "SampleAfterValue": "20003",
1081*3323532aSIan Rogers        "Unit": "cpu_atom"
1082*3323532aSIan Rogers    },
1083*3323532aSIan Rogers    {
1084dfc83cc8SIan Rogers        "BriefDescription": "Number of machine clears (nukes) of any type.",
1085*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
1086dfc83cc8SIan Rogers        "CounterMask": "1",
1087dfc83cc8SIan Rogers        "EdgeDetect": "1",
1088dfc83cc8SIan Rogers        "EventCode": "0xc3",
1089dfc83cc8SIan Rogers        "EventName": "MACHINE_CLEARS.COUNT",
1090dfc83cc8SIan Rogers        "PublicDescription": "Counts the number of machine clears (nukes) of any type.",
10911ab4ef06SIan Rogers        "SampleAfterValue": "100003",
1092dfc83cc8SIan Rogers        "UMask": "0x1",
1093dfc83cc8SIan Rogers        "Unit": "cpu_core"
1094dfc83cc8SIan Rogers    },
1095dfc83cc8SIan Rogers    {
1096dfc83cc8SIan Rogers        "BriefDescription": "Counts the number of machine clears due to memory ordering in which an internal load passes an older store within the same CPU.",
1097*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
1098dfc83cc8SIan Rogers        "EventCode": "0xc3",
1099dfc83cc8SIan Rogers        "EventName": "MACHINE_CLEARS.DISAMBIGUATION",
1100dfc83cc8SIan Rogers        "SampleAfterValue": "20003",
1101dfc83cc8SIan Rogers        "UMask": "0x8",
1102dfc83cc8SIan Rogers        "Unit": "cpu_atom"
1103dfc83cc8SIan Rogers    },
1104dfc83cc8SIan Rogers    {
1105*3323532aSIan Rogers        "BriefDescription": "Counts the number of machines clears due to memory renaming.",
1106*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
1107*3323532aSIan Rogers        "EventCode": "0xc3",
1108*3323532aSIan Rogers        "EventName": "MACHINE_CLEARS.MRN_NUKE",
1109*3323532aSIan Rogers        "SampleAfterValue": "1000003",
1110*3323532aSIan Rogers        "UMask": "0x80",
1111*3323532aSIan Rogers        "Unit": "cpu_atom"
1112*3323532aSIan Rogers    },
1113*3323532aSIan Rogers    {
1114dfc83cc8SIan Rogers        "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.",
1115*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
1116dfc83cc8SIan Rogers        "EventCode": "0xc3",
1117dfc83cc8SIan Rogers        "EventName": "MACHINE_CLEARS.PAGE_FAULT",
1118dfc83cc8SIan Rogers        "SampleAfterValue": "20003",
1119dfc83cc8SIan Rogers        "UMask": "0x20",
1120dfc83cc8SIan Rogers        "Unit": "cpu_atom"
1121dfc83cc8SIan Rogers    },
1122dfc83cc8SIan Rogers    {
1123dfc83cc8SIan Rogers        "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.",
1124*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
1125dfc83cc8SIan Rogers        "EventCode": "0xc3",
1126dfc83cc8SIan Rogers        "EventName": "MACHINE_CLEARS.SLOW",
1127dfc83cc8SIan Rogers        "SampleAfterValue": "20003",
1128dfc83cc8SIan Rogers        "UMask": "0x6f",
1129dfc83cc8SIan Rogers        "Unit": "cpu_atom"
1130dfc83cc8SIan Rogers    },
1131dfc83cc8SIan Rogers    {
1132dfc83cc8SIan Rogers        "BriefDescription": "Counts the number of machine clears due to program modifying data (self modifying code) within 1K of a recently fetched code page.",
1133*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
1134dfc83cc8SIan Rogers        "EventCode": "0xc3",
1135dfc83cc8SIan Rogers        "EventName": "MACHINE_CLEARS.SMC",
1136dfc83cc8SIan Rogers        "SampleAfterValue": "20003",
1137dfc83cc8SIan Rogers        "UMask": "0x1",
1138dfc83cc8SIan Rogers        "Unit": "cpu_atom"
1139dfc83cc8SIan Rogers    },
1140dfc83cc8SIan Rogers    {
1141ab0cfb79SIan Rogers        "BriefDescription": "Self-modifying code (SMC) detected.",
1142*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
1143ab0cfb79SIan Rogers        "EventCode": "0xc3",
1144ab0cfb79SIan Rogers        "EventName": "MACHINE_CLEARS.SMC",
1145ab0cfb79SIan Rogers        "PublicDescription": "Counts self-modifying code (SMC) detected, which causes a machine clear.",
1146ab0cfb79SIan Rogers        "SampleAfterValue": "100003",
1147ab0cfb79SIan Rogers        "UMask": "0x4",
1148ab0cfb79SIan Rogers        "Unit": "cpu_core"
1149ab0cfb79SIan Rogers    },
1150ab0cfb79SIan Rogers    {
1151ab0cfb79SIan Rogers        "BriefDescription": "LFENCE instructions retired",
1152*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
1153ab0cfb79SIan Rogers        "EventCode": "0xe0",
1154ab0cfb79SIan Rogers        "EventName": "MISC2_RETIRED.LFENCE",
1155ab0cfb79SIan Rogers        "PublicDescription": "number of LFENCE retired instructions",
1156ab0cfb79SIan Rogers        "SampleAfterValue": "400009",
1157ab0cfb79SIan Rogers        "UMask": "0x20",
1158ab0cfb79SIan Rogers        "Unit": "cpu_core"
1159ab0cfb79SIan Rogers    },
1160ab0cfb79SIan Rogers    {
11611d262a85SIan Rogers        "BriefDescription": "Counts the number of Last Branch Record (LBR) entries. Requires LBRs to be enabled and configured in IA32_LBR_CTL. [This event is alias to LBR_INSERTS.ANY]",
1162*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
11631d262a85SIan Rogers        "EventCode": "0xe4",
11641d262a85SIan Rogers        "EventName": "MISC_RETIRED.LBR_INSERTS",
11651d262a85SIan Rogers        "SampleAfterValue": "1000003",
11661d262a85SIan Rogers        "UMask": "0x1",
11671d262a85SIan Rogers        "Unit": "cpu_atom"
11681d262a85SIan Rogers    },
11691d262a85SIan Rogers    {
1170*3323532aSIan Rogers        "BriefDescription": "Increments whenever there is an update to the LBR array.",
1171*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
1172*3323532aSIan Rogers        "EventCode": "0xcc",
1173*3323532aSIan Rogers        "EventName": "MISC_RETIRED.LBR_INSERTS",
1174*3323532aSIan Rogers        "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.",
1175*3323532aSIan Rogers        "SampleAfterValue": "100003",
1176*3323532aSIan Rogers        "UMask": "0x20",
1177*3323532aSIan Rogers        "Unit": "cpu_core"
1178*3323532aSIan Rogers    },
1179*3323532aSIan Rogers    {
1180dfc83cc8SIan Rogers        "BriefDescription": "Counts cycles where the pipeline is stalled due to serializing operations.",
1181*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
1182dfc83cc8SIan Rogers        "EventCode": "0xa2",
1183dfc83cc8SIan Rogers        "EventName": "RESOURCE_STALLS.SCOREBOARD",
1184dfc83cc8SIan Rogers        "SampleAfterValue": "100003",
1185dfc83cc8SIan Rogers        "UMask": "0x2",
11861ab4ef06SIan Rogers        "Unit": "cpu_core"
11871ab4ef06SIan Rogers    },
11881ab4ef06SIan Rogers    {
1189591530c0SIan Rogers        "BriefDescription": "This event counts a subset of the Topdown Slots event that were not consumed by the back-end pipeline due to lack of back-end resources, as a result of memory subsystem delays, execution units limitations, or other conditions.",
1190*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
1191591530c0SIan Rogers        "EventCode": "0xa4",
1192591530c0SIan Rogers        "EventName": "TOPDOWN.BACKEND_BOUND_SLOTS",
119384d0e8c6SIan Rogers        "PublicDescription": "This event counts a subset of the Topdown Slots event that were not consumed by the back-end pipeline due to lack of back-end resources, as a result of memory subsystem delays, execution units limitations, or other conditions. The count is distributed among unhalted logical processors (hyper-threads) who share the same physical core, in processors that support Intel Hyper-Threading Technology. Software can use this event as the numerator for the Backend Bound metric (or top-level category) of the Top-down Microarchitecture Analysis method.",
1194591530c0SIan Rogers        "SampleAfterValue": "10000003",
1195591530c0SIan Rogers        "UMask": "0x2",
1196591530c0SIan Rogers        "Unit": "cpu_core"
1197591530c0SIan Rogers    },
1198591530c0SIan Rogers    {
1199dfc83cc8SIan Rogers        "BriefDescription": "TMA slots wasted due to incorrect speculations.",
1200*3323532aSIan Rogers        "Counter": "0",
1201dfc83cc8SIan Rogers        "EventCode": "0xa4",
1202dfc83cc8SIan Rogers        "EventName": "TOPDOWN.BAD_SPEC_SLOTS",
1203dfc83cc8SIan Rogers        "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.",
1204dfc83cc8SIan Rogers        "SampleAfterValue": "10000003",
1205dfc83cc8SIan Rogers        "UMask": "0x4",
1206dfc83cc8SIan Rogers        "Unit": "cpu_core"
1207dfc83cc8SIan Rogers    },
1208dfc83cc8SIan Rogers    {
1209dfc83cc8SIan Rogers        "BriefDescription": "TMA slots wasted due to incorrect speculation by branch mispredictions",
1210*3323532aSIan Rogers        "Counter": "0",
1211dfc83cc8SIan Rogers        "EventCode": "0xa4",
1212dfc83cc8SIan Rogers        "EventName": "TOPDOWN.BR_MISPREDICT_SLOTS",
1213dfc83cc8SIan Rogers        "PublicDescription": "Number of TMA slots that were wasted due to incorrect speculation by (any type of) branch mispredictions. This event estimates number of speculative operations that were issued but not retired as well as the out-of-order engine recovery past a branch misprediction.",
1214dfc83cc8SIan Rogers        "SampleAfterValue": "10000003",
1215dfc83cc8SIan Rogers        "UMask": "0x8",
1216dfc83cc8SIan Rogers        "Unit": "cpu_core"
1217dfc83cc8SIan Rogers    },
1218dfc83cc8SIan Rogers    {
1219dfc83cc8SIan Rogers        "BriefDescription": "TOPDOWN.MEMORY_BOUND_SLOTS",
1220*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
1221dfc83cc8SIan Rogers        "EventCode": "0xa4",
1222dfc83cc8SIan Rogers        "EventName": "TOPDOWN.MEMORY_BOUND_SLOTS",
1223dfc83cc8SIan Rogers        "SampleAfterValue": "10000003",
1224dfc83cc8SIan Rogers        "UMask": "0x10",
1225dfc83cc8SIan Rogers        "Unit": "cpu_core"
1226dfc83cc8SIan Rogers    },
1227dfc83cc8SIan Rogers    {
12281ab4ef06SIan Rogers        "BriefDescription": "TMA slots available for an unhalted logical processor. Fixed counter - architectural event",
1229*3323532aSIan Rogers        "Counter": "Fixed counter 3",
12301ab4ef06SIan Rogers        "EventName": "TOPDOWN.SLOTS",
1231591530c0SIan Rogers        "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).",
12321ab4ef06SIan Rogers        "SampleAfterValue": "10000003",
12331ab4ef06SIan Rogers        "UMask": "0x4",
12341ab4ef06SIan Rogers        "Unit": "cpu_core"
12351ab4ef06SIan Rogers    },
12361ab4ef06SIan Rogers    {
12371ab4ef06SIan Rogers        "BriefDescription": "TMA slots available for an unhalted logical processor. General counter - architectural event",
1238*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
12391ab4ef06SIan Rogers        "EventCode": "0xa4",
12401ab4ef06SIan Rogers        "EventName": "TOPDOWN.SLOTS_P",
1241591530c0SIan Rogers        "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.",
12421ab4ef06SIan Rogers        "SampleAfterValue": "10000003",
12431ab4ef06SIan Rogers        "UMask": "0x1",
12441ab4ef06SIan Rogers        "Unit": "cpu_core"
12455362e4d1SIan Rogers    },
12465362e4d1SIan Rogers    {
124784d0e8c6SIan Rogers        "BriefDescription": "Counts the number of issue slots that were not consumed by the backend because allocation is stalled due to a mispredicted jump or a machine clear. [This event is alias to TOPDOWN_BAD_SPECULATION.ALL_P]",
1248*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
12495362e4d1SIan Rogers        "EventCode": "0x73",
12505362e4d1SIan Rogers        "EventName": "TOPDOWN_BAD_SPECULATION.ALL",
125184d0e8c6SIan Rogers        "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) or until an FE_BOUND event occurs besides OTHER and CISC. 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. [This event is alias to TOPDOWN_BAD_SPECULATION.ALL_P]",
125284d0e8c6SIan Rogers        "SampleAfterValue": "1000003",
125384d0e8c6SIan Rogers        "Unit": "cpu_atom"
125484d0e8c6SIan Rogers    },
125584d0e8c6SIan Rogers    {
125684d0e8c6SIan Rogers        "BriefDescription": "Counts the number of issue slots that were not consumed by the backend because allocation is stalled due to a mispredicted jump or a machine clear. [This event is alias to TOPDOWN_BAD_SPECULATION.ALL]",
1257*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
125884d0e8c6SIan Rogers        "EventCode": "0x73",
125984d0e8c6SIan Rogers        "EventName": "TOPDOWN_BAD_SPECULATION.ALL_P",
126084d0e8c6SIan Rogers        "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) or until an FE_BOUND event occurs besides OTHER and CISC. 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. [This event is alias to TOPDOWN_BAD_SPECULATION.ALL]",
12615362e4d1SIan Rogers        "SampleAfterValue": "1000003",
12625362e4d1SIan Rogers        "Unit": "cpu_atom"
12635362e4d1SIan Rogers    },
12645362e4d1SIan Rogers    {
1265dfc83cc8SIan Rogers        "BriefDescription": "Counts the number of issue slots every cycle that were not consumed by the backend due to Fast Nukes such as  Memory Ordering Machine clears and MRN nukes",
1266*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
1267dfc83cc8SIan Rogers        "EventCode": "0x73",
1268dfc83cc8SIan Rogers        "EventName": "TOPDOWN_BAD_SPECULATION.FASTNUKE",
1269dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
1270dfc83cc8SIan Rogers        "UMask": "0x2",
1271dfc83cc8SIan Rogers        "Unit": "cpu_atom"
1272dfc83cc8SIan Rogers    },
1273dfc83cc8SIan Rogers    {
1274dfc83cc8SIan Rogers        "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.",
1275*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
1276dfc83cc8SIan Rogers        "EventCode": "0x73",
1277dfc83cc8SIan Rogers        "EventName": "TOPDOWN_BAD_SPECULATION.MACHINE_CLEARS",
1278dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
1279dfc83cc8SIan Rogers        "UMask": "0x3",
1280dfc83cc8SIan Rogers        "Unit": "cpu_atom"
1281dfc83cc8SIan Rogers    },
1282dfc83cc8SIan Rogers    {
128324773076SIan Rogers        "BriefDescription": "Counts the number of issue slots every cycle that were not consumed by the backend due to Branch Mispredict",
1284*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
128524773076SIan Rogers        "EventCode": "0x73",
128624773076SIan Rogers        "EventName": "TOPDOWN_BAD_SPECULATION.MISPREDICT",
128724773076SIan Rogers        "SampleAfterValue": "1000003",
128824773076SIan Rogers        "UMask": "0x4",
128924773076SIan Rogers        "Unit": "cpu_atom"
129024773076SIan Rogers    },
129124773076SIan Rogers    {
1292dfc83cc8SIan Rogers        "BriefDescription": "Counts the number of issue slots every cycle that were not consumed by the backend due to a machine clear (nuke).",
1293*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
1294dfc83cc8SIan Rogers        "EventCode": "0x73",
1295dfc83cc8SIan Rogers        "EventName": "TOPDOWN_BAD_SPECULATION.NUKE",
1296dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
1297dfc83cc8SIan Rogers        "UMask": "0x1",
1298dfc83cc8SIan Rogers        "Unit": "cpu_atom"
1299dfc83cc8SIan Rogers    },
1300dfc83cc8SIan Rogers    {
130184d0e8c6SIan Rogers        "BriefDescription": "Counts the number of retirement slots not consumed due to backend stalls [This event is alias to TOPDOWN_BE_BOUND.ALL_P]",
1302*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
13035362e4d1SIan Rogers        "EventCode": "0x74",
13045362e4d1SIan Rogers        "EventName": "TOPDOWN_BE_BOUND.ALL",
13055362e4d1SIan Rogers        "SampleAfterValue": "1000003",
13065362e4d1SIan Rogers        "Unit": "cpu_atom"
13075362e4d1SIan Rogers    },
13085362e4d1SIan Rogers    {
1309dfc83cc8SIan Rogers        "BriefDescription": "Counts the number of issue slots every cycle that were not consumed by the backend due to due to certain allocation restrictions",
1310*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
1311dfc83cc8SIan Rogers        "EventCode": "0x74",
1312dfc83cc8SIan Rogers        "EventName": "TOPDOWN_BE_BOUND.ALLOC_RESTRICTIONS",
1313dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
1314dfc83cc8SIan Rogers        "UMask": "0x1",
1315dfc83cc8SIan Rogers        "Unit": "cpu_atom"
1316dfc83cc8SIan Rogers    },
1317dfc83cc8SIan Rogers    {
131884d0e8c6SIan Rogers        "BriefDescription": "Counts the number of retirement slots not consumed due to backend stalls [This event is alias to TOPDOWN_BE_BOUND.ALL]",
1319*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
132084d0e8c6SIan Rogers        "EventCode": "0x74",
132184d0e8c6SIan Rogers        "EventName": "TOPDOWN_BE_BOUND.ALL_P",
132284d0e8c6SIan Rogers        "SampleAfterValue": "1000003",
132384d0e8c6SIan Rogers        "Unit": "cpu_atom"
132484d0e8c6SIan Rogers    },
132584d0e8c6SIan Rogers    {
132624773076SIan Rogers        "BriefDescription": "Counts the number of issue slots every cycle that were not consumed by the backend due to memory reservation stall (scheduler not being able to accept another uop).  This could be caused by RSV full or load/store buffer block.",
1327*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
132824773076SIan Rogers        "EventCode": "0x74",
132924773076SIan Rogers        "EventName": "TOPDOWN_BE_BOUND.MEM_SCHEDULER",
133024773076SIan Rogers        "SampleAfterValue": "1000003",
133124773076SIan Rogers        "UMask": "0x2",
133224773076SIan Rogers        "Unit": "cpu_atom"
133324773076SIan Rogers    },
133424773076SIan Rogers    {
133524773076SIan Rogers        "BriefDescription": "Counts the number of issue slots every cycle that were not consumed by the backend due to IEC and FPC RAT stalls - which can be due to the FIQ and IEC reservation station stall (integer, FP and SIMD scheduler not being able to accept another uop. )",
1336*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
133724773076SIan Rogers        "EventCode": "0x74",
133824773076SIan Rogers        "EventName": "TOPDOWN_BE_BOUND.NON_MEM_SCHEDULER",
133924773076SIan Rogers        "SampleAfterValue": "1000003",
134024773076SIan Rogers        "UMask": "0x8",
134124773076SIan Rogers        "Unit": "cpu_atom"
134224773076SIan Rogers    },
134324773076SIan Rogers    {
1344dfc83cc8SIan Rogers        "BriefDescription": "Counts the number of issue slots every cycle that were not consumed by the backend due to mrbl stall.  A 'marble' refers to a physical register file entry, also known as the physical destination (PDST).",
1345*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
1346dfc83cc8SIan Rogers        "EventCode": "0x74",
1347dfc83cc8SIan Rogers        "EventName": "TOPDOWN_BE_BOUND.REGISTER",
1348dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
1349dfc83cc8SIan Rogers        "UMask": "0x20",
1350dfc83cc8SIan Rogers        "Unit": "cpu_atom"
1351dfc83cc8SIan Rogers    },
1352dfc83cc8SIan Rogers    {
135324773076SIan Rogers        "BriefDescription": "Counts the number of issue slots every cycle that were not consumed by the backend due to ROB full",
1354*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
135524773076SIan Rogers        "EventCode": "0x74",
135624773076SIan Rogers        "EventName": "TOPDOWN_BE_BOUND.REORDER_BUFFER",
135724773076SIan Rogers        "SampleAfterValue": "1000003",
135824773076SIan Rogers        "UMask": "0x40",
135924773076SIan Rogers        "Unit": "cpu_atom"
136024773076SIan Rogers    },
136124773076SIan Rogers    {
1362dfc83cc8SIan Rogers        "BriefDescription": "Counts the number of issue slots every cycle that were not consumed by the backend due to iq/jeu scoreboards or ms scb",
1363*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
1364dfc83cc8SIan Rogers        "EventCode": "0x74",
1365dfc83cc8SIan Rogers        "EventName": "TOPDOWN_BE_BOUND.SERIALIZATION",
1366dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
1367dfc83cc8SIan Rogers        "UMask": "0x10",
1368dfc83cc8SIan Rogers        "Unit": "cpu_atom"
1369dfc83cc8SIan Rogers    },
1370dfc83cc8SIan Rogers    {
137184d0e8c6SIan Rogers        "BriefDescription": "Counts the number of retirement slots not consumed due to front end stalls [This event is alias to TOPDOWN_FE_BOUND.ALL_P]",
1372*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
13735362e4d1SIan Rogers        "EventCode": "0x71",
13745362e4d1SIan Rogers        "EventName": "TOPDOWN_FE_BOUND.ALL",
13755362e4d1SIan Rogers        "SampleAfterValue": "1000003",
13765362e4d1SIan Rogers        "Unit": "cpu_atom"
13775362e4d1SIan Rogers    },
13785362e4d1SIan Rogers    {
137984d0e8c6SIan Rogers        "BriefDescription": "Counts the number of retirement slots not consumed due to front end stalls [This event is alias to TOPDOWN_FE_BOUND.ALL]",
1380*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
138184d0e8c6SIan Rogers        "EventCode": "0x71",
138284d0e8c6SIan Rogers        "EventName": "TOPDOWN_FE_BOUND.ALL_P",
138384d0e8c6SIan Rogers        "SampleAfterValue": "1000003",
138484d0e8c6SIan Rogers        "Unit": "cpu_atom"
138584d0e8c6SIan Rogers    },
138684d0e8c6SIan Rogers    {
1387dfc83cc8SIan Rogers        "BriefDescription": "Counts the number of issue slots every cycle that were not delivered by the frontend due to BAClear",
1388*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
1389dfc83cc8SIan Rogers        "EventCode": "0x71",
1390dfc83cc8SIan Rogers        "EventName": "TOPDOWN_FE_BOUND.BRANCH_DETECT",
1391dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
1392dfc83cc8SIan Rogers        "UMask": "0x2",
1393dfc83cc8SIan Rogers        "Unit": "cpu_atom"
1394dfc83cc8SIan Rogers    },
1395dfc83cc8SIan Rogers    {
1396dfc83cc8SIan Rogers        "BriefDescription": "Counts the number of issue slots every cycle that were not delivered by the frontend due to BTClear",
1397*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
1398dfc83cc8SIan Rogers        "EventCode": "0x71",
1399dfc83cc8SIan Rogers        "EventName": "TOPDOWN_FE_BOUND.BRANCH_RESTEER",
1400dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
1401dfc83cc8SIan Rogers        "UMask": "0x40",
1402dfc83cc8SIan Rogers        "Unit": "cpu_atom"
1403dfc83cc8SIan Rogers    },
1404dfc83cc8SIan Rogers    {
1405dfc83cc8SIan Rogers        "BriefDescription": "Counts the number of issue slots every cycle that were not delivered by the frontend due to ms",
1406*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
1407dfc83cc8SIan Rogers        "EventCode": "0x71",
1408dfc83cc8SIan Rogers        "EventName": "TOPDOWN_FE_BOUND.CISC",
1409dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
1410dfc83cc8SIan Rogers        "UMask": "0x1",
1411dfc83cc8SIan Rogers        "Unit": "cpu_atom"
1412dfc83cc8SIan Rogers    },
1413dfc83cc8SIan Rogers    {
1414dfc83cc8SIan Rogers        "BriefDescription": "Counts the number of issue slots every cycle that were not delivered by the frontend due to decode stall",
1415*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
1416dfc83cc8SIan Rogers        "EventCode": "0x71",
1417dfc83cc8SIan Rogers        "EventName": "TOPDOWN_FE_BOUND.DECODE",
1418dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
1419dfc83cc8SIan Rogers        "UMask": "0x8",
1420dfc83cc8SIan Rogers        "Unit": "cpu_atom"
1421dfc83cc8SIan Rogers    },
1422dfc83cc8SIan Rogers    {
1423dfc83cc8SIan Rogers        "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.",
1424*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
1425dfc83cc8SIan Rogers        "EventCode": "0x71",
1426dfc83cc8SIan Rogers        "EventName": "TOPDOWN_FE_BOUND.FRONTEND_BANDWIDTH",
1427dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
1428dfc83cc8SIan Rogers        "UMask": "0x8d",
1429dfc83cc8SIan Rogers        "Unit": "cpu_atom"
1430dfc83cc8SIan Rogers    },
1431dfc83cc8SIan Rogers    {
1432dfc83cc8SIan Rogers        "BriefDescription": "Counts the number of issue slots every cycle that were not delivered by the frontend due to latency related stalls including BACLEARs, BTCLEARs, ITLB misses, and ICache misses.",
1433*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
1434dfc83cc8SIan Rogers        "EventCode": "0x71",
1435dfc83cc8SIan Rogers        "EventName": "TOPDOWN_FE_BOUND.FRONTEND_LATENCY",
1436dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
1437dfc83cc8SIan Rogers        "UMask": "0x72",
1438dfc83cc8SIan Rogers        "Unit": "cpu_atom"
1439dfc83cc8SIan Rogers    },
1440dfc83cc8SIan Rogers    {
1441dfc83cc8SIan Rogers        "BriefDescription": "This event is deprecated. [This event is alias to TOPDOWN_FE_BOUND.ITLB_MISS]",
1442*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
1443dfc83cc8SIan Rogers        "Deprecated": "1",
1444dfc83cc8SIan Rogers        "EventCode": "0x71",
1445dfc83cc8SIan Rogers        "EventName": "TOPDOWN_FE_BOUND.ITLB",
1446dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
1447dfc83cc8SIan Rogers        "UMask": "0x10",
1448dfc83cc8SIan Rogers        "Unit": "cpu_atom"
1449dfc83cc8SIan Rogers    },
1450dfc83cc8SIan Rogers    {
1451dfc83cc8SIan Rogers        "BriefDescription": "Counts the number of issue slots every cycle that were not delivered by the frontend due to itlb miss [This event is alias to TOPDOWN_FE_BOUND.ITLB]",
1452*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
1453dfc83cc8SIan Rogers        "EventCode": "0x71",
1454dfc83cc8SIan Rogers        "EventName": "TOPDOWN_FE_BOUND.ITLB_MISS",
1455dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
1456dfc83cc8SIan Rogers        "UMask": "0x10",
1457dfc83cc8SIan Rogers        "Unit": "cpu_atom"
1458dfc83cc8SIan Rogers    },
1459dfc83cc8SIan Rogers    {
146024773076SIan Rogers        "BriefDescription": "Counts the number of issue slots every cycle that were not delivered by the frontend that do not categorize into any other common frontend stall",
1461*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
146224773076SIan Rogers        "EventCode": "0x71",
146324773076SIan Rogers        "EventName": "TOPDOWN_FE_BOUND.OTHER",
146424773076SIan Rogers        "SampleAfterValue": "1000003",
146524773076SIan Rogers        "UMask": "0x80",
146624773076SIan Rogers        "Unit": "cpu_atom"
146724773076SIan Rogers    },
146824773076SIan Rogers    {
1469dfc83cc8SIan Rogers        "BriefDescription": "Counts the number of issue slots every cycle that were not delivered by the frontend due to predecode wrong",
1470*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
1471dfc83cc8SIan Rogers        "EventCode": "0x71",
1472dfc83cc8SIan Rogers        "EventName": "TOPDOWN_FE_BOUND.PREDECODE",
1473dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
1474dfc83cc8SIan Rogers        "UMask": "0x4",
1475dfc83cc8SIan Rogers        "Unit": "cpu_atom"
1476dfc83cc8SIan Rogers    },
1477dfc83cc8SIan Rogers    {
1478*3323532aSIan Rogers        "BriefDescription": "Counts the number of consumed retirement slots. [This event is alias to TOPDOWN_RETIRING.ALL_P]",
1479*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
14805362e4d1SIan Rogers        "EventCode": "0x72",
14815362e4d1SIan Rogers        "EventName": "TOPDOWN_RETIRING.ALL",
14825362e4d1SIan Rogers        "SampleAfterValue": "1000003",
14835362e4d1SIan Rogers        "Unit": "cpu_atom"
1484591530c0SIan Rogers    },
1485591530c0SIan Rogers    {
1486*3323532aSIan Rogers        "BriefDescription": "Counts the number of consumed retirement slots. [This event is alias to TOPDOWN_RETIRING.ALL]",
1487*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
148884d0e8c6SIan Rogers        "EventCode": "0x72",
148984d0e8c6SIan Rogers        "EventName": "TOPDOWN_RETIRING.ALL_P",
149084d0e8c6SIan Rogers        "SampleAfterValue": "1000003",
149184d0e8c6SIan Rogers        "Unit": "cpu_atom"
149284d0e8c6SIan Rogers    },
149384d0e8c6SIan Rogers    {
1494dfc83cc8SIan Rogers        "BriefDescription": "Number of non dec-by-all uops decoded by decoder",
1495*3323532aSIan Rogers        "Counter": "0,1,2,3",
1496dfc83cc8SIan Rogers        "EventCode": "0x76",
1497dfc83cc8SIan Rogers        "EventName": "UOPS_DECODED.DEC0_UOPS",
1498dfc83cc8SIan Rogers        "PublicDescription": "This event counts the number of not dec-by-all uops decoded by decoder 0.",
1499dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
1500dfc83cc8SIan Rogers        "UMask": "0x1",
1501dfc83cc8SIan Rogers        "Unit": "cpu_core"
1502dfc83cc8SIan Rogers    },
1503dfc83cc8SIan Rogers    {
1504dfc83cc8SIan Rogers        "BriefDescription": "Uops executed on port 0",
1505*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
1506dfc83cc8SIan Rogers        "EventCode": "0xb2",
1507dfc83cc8SIan Rogers        "EventName": "UOPS_DISPATCHED.PORT_0",
1508dfc83cc8SIan Rogers        "PublicDescription": "Number of uops dispatch to execution  port 0.",
1509dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
1510dfc83cc8SIan Rogers        "UMask": "0x1",
1511dfc83cc8SIan Rogers        "Unit": "cpu_core"
1512dfc83cc8SIan Rogers    },
1513dfc83cc8SIan Rogers    {
1514dfc83cc8SIan Rogers        "BriefDescription": "Uops executed on port 1",
1515*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
1516dfc83cc8SIan Rogers        "EventCode": "0xb2",
1517dfc83cc8SIan Rogers        "EventName": "UOPS_DISPATCHED.PORT_1",
1518dfc83cc8SIan Rogers        "PublicDescription": "Number of uops dispatch to execution  port 1.",
1519dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
1520dfc83cc8SIan Rogers        "UMask": "0x2",
1521dfc83cc8SIan Rogers        "Unit": "cpu_core"
1522dfc83cc8SIan Rogers    },
1523dfc83cc8SIan Rogers    {
1524dfc83cc8SIan Rogers        "BriefDescription": "Uops executed on ports 2, 3 and 10",
1525*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
1526dfc83cc8SIan Rogers        "EventCode": "0xb2",
1527dfc83cc8SIan Rogers        "EventName": "UOPS_DISPATCHED.PORT_2_3_10",
1528dfc83cc8SIan Rogers        "PublicDescription": "Number of uops dispatch to execution ports 2, 3 and 10",
1529dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
1530dfc83cc8SIan Rogers        "UMask": "0x4",
1531dfc83cc8SIan Rogers        "Unit": "cpu_core"
1532dfc83cc8SIan Rogers    },
1533dfc83cc8SIan Rogers    {
1534dfc83cc8SIan Rogers        "BriefDescription": "Uops executed on ports 4 and 9",
1535*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
1536dfc83cc8SIan Rogers        "EventCode": "0xb2",
1537dfc83cc8SIan Rogers        "EventName": "UOPS_DISPATCHED.PORT_4_9",
1538dfc83cc8SIan Rogers        "PublicDescription": "Number of uops dispatch to execution ports 4 and 9",
1539dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
1540dfc83cc8SIan Rogers        "UMask": "0x10",
1541dfc83cc8SIan Rogers        "Unit": "cpu_core"
1542dfc83cc8SIan Rogers    },
1543dfc83cc8SIan Rogers    {
1544dfc83cc8SIan Rogers        "BriefDescription": "Uops executed on ports 5 and 11",
1545*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
1546dfc83cc8SIan Rogers        "EventCode": "0xb2",
1547dfc83cc8SIan Rogers        "EventName": "UOPS_DISPATCHED.PORT_5_11",
1548dfc83cc8SIan Rogers        "PublicDescription": "Number of uops dispatch to execution ports 5 and 11",
1549dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
1550dfc83cc8SIan Rogers        "UMask": "0x20",
1551dfc83cc8SIan Rogers        "Unit": "cpu_core"
1552dfc83cc8SIan Rogers    },
1553dfc83cc8SIan Rogers    {
1554dfc83cc8SIan Rogers        "BriefDescription": "Uops executed on port 6",
1555*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
1556dfc83cc8SIan Rogers        "EventCode": "0xb2",
1557dfc83cc8SIan Rogers        "EventName": "UOPS_DISPATCHED.PORT_6",
1558dfc83cc8SIan Rogers        "PublicDescription": "Number of uops dispatch to execution  port 6.",
1559dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
1560dfc83cc8SIan Rogers        "UMask": "0x40",
1561dfc83cc8SIan Rogers        "Unit": "cpu_core"
1562dfc83cc8SIan Rogers    },
1563dfc83cc8SIan Rogers    {
1564dfc83cc8SIan Rogers        "BriefDescription": "Uops executed on ports 7 and 8",
1565*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
1566dfc83cc8SIan Rogers        "EventCode": "0xb2",
1567dfc83cc8SIan Rogers        "EventName": "UOPS_DISPATCHED.PORT_7_8",
1568dfc83cc8SIan Rogers        "PublicDescription": "Number of uops dispatch to execution  ports 7 and 8.",
1569dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
1570dfc83cc8SIan Rogers        "UMask": "0x80",
1571dfc83cc8SIan Rogers        "Unit": "cpu_core"
1572dfc83cc8SIan Rogers    },
1573dfc83cc8SIan Rogers    {
1574dfc83cc8SIan Rogers        "BriefDescription": "Number of uops executed on the core.",
1575*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
1576dfc83cc8SIan Rogers        "EventCode": "0xb1",
1577dfc83cc8SIan Rogers        "EventName": "UOPS_EXECUTED.CORE",
1578dfc83cc8SIan Rogers        "PublicDescription": "Counts the number of uops executed from any thread.",
1579dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
1580dfc83cc8SIan Rogers        "UMask": "0x2",
1581dfc83cc8SIan Rogers        "Unit": "cpu_core"
1582dfc83cc8SIan Rogers    },
1583dfc83cc8SIan Rogers    {
1584dfc83cc8SIan Rogers        "BriefDescription": "Cycles at least 1 micro-op is executed from any thread on physical core.",
1585*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
1586dfc83cc8SIan Rogers        "CounterMask": "1",
1587dfc83cc8SIan Rogers        "EventCode": "0xb1",
1588dfc83cc8SIan Rogers        "EventName": "UOPS_EXECUTED.CORE_CYCLES_GE_1",
1589dfc83cc8SIan Rogers        "PublicDescription": "Counts cycles when at least 1 micro-op is executed from any thread on physical core.",
1590dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
1591dfc83cc8SIan Rogers        "UMask": "0x2",
1592dfc83cc8SIan Rogers        "Unit": "cpu_core"
1593dfc83cc8SIan Rogers    },
1594dfc83cc8SIan Rogers    {
1595dfc83cc8SIan Rogers        "BriefDescription": "Cycles at least 2 micro-op is executed from any thread on physical core.",
1596*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
1597dfc83cc8SIan Rogers        "CounterMask": "2",
1598dfc83cc8SIan Rogers        "EventCode": "0xb1",
1599dfc83cc8SIan Rogers        "EventName": "UOPS_EXECUTED.CORE_CYCLES_GE_2",
1600dfc83cc8SIan Rogers        "PublicDescription": "Counts cycles when at least 2 micro-ops are executed from any thread on physical core.",
1601dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
1602dfc83cc8SIan Rogers        "UMask": "0x2",
1603dfc83cc8SIan Rogers        "Unit": "cpu_core"
1604dfc83cc8SIan Rogers    },
1605dfc83cc8SIan Rogers    {
1606dfc83cc8SIan Rogers        "BriefDescription": "Cycles at least 3 micro-op is executed from any thread on physical core.",
1607*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
1608dfc83cc8SIan Rogers        "CounterMask": "3",
1609dfc83cc8SIan Rogers        "EventCode": "0xb1",
1610dfc83cc8SIan Rogers        "EventName": "UOPS_EXECUTED.CORE_CYCLES_GE_3",
1611dfc83cc8SIan Rogers        "PublicDescription": "Counts cycles when at least 3 micro-ops are executed from any thread on physical core.",
1612dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
1613dfc83cc8SIan Rogers        "UMask": "0x2",
1614dfc83cc8SIan Rogers        "Unit": "cpu_core"
1615dfc83cc8SIan Rogers    },
1616dfc83cc8SIan Rogers    {
1617dfc83cc8SIan Rogers        "BriefDescription": "Cycles at least 4 micro-op is executed from any thread on physical core.",
1618*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
1619dfc83cc8SIan Rogers        "CounterMask": "4",
1620dfc83cc8SIan Rogers        "EventCode": "0xb1",
1621dfc83cc8SIan Rogers        "EventName": "UOPS_EXECUTED.CORE_CYCLES_GE_4",
1622dfc83cc8SIan Rogers        "PublicDescription": "Counts cycles when at least 4 micro-ops are executed from any thread on physical core.",
1623dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
1624dfc83cc8SIan Rogers        "UMask": "0x2",
1625dfc83cc8SIan Rogers        "Unit": "cpu_core"
1626dfc83cc8SIan Rogers    },
1627dfc83cc8SIan Rogers    {
1628dfc83cc8SIan Rogers        "BriefDescription": "Cycles where at least 1 uop was executed per-thread",
1629*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
1630dfc83cc8SIan Rogers        "CounterMask": "1",
1631dfc83cc8SIan Rogers        "EventCode": "0xb1",
1632dfc83cc8SIan Rogers        "EventName": "UOPS_EXECUTED.CYCLES_GE_1",
1633dfc83cc8SIan Rogers        "PublicDescription": "Cycles where at least 1 uop was executed per-thread.",
1634dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
1635dfc83cc8SIan Rogers        "UMask": "0x1",
1636dfc83cc8SIan Rogers        "Unit": "cpu_core"
1637dfc83cc8SIan Rogers    },
1638dfc83cc8SIan Rogers    {
1639dfc83cc8SIan Rogers        "BriefDescription": "Cycles where at least 2 uops were executed per-thread",
1640*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
1641dfc83cc8SIan Rogers        "CounterMask": "2",
1642dfc83cc8SIan Rogers        "EventCode": "0xb1",
1643dfc83cc8SIan Rogers        "EventName": "UOPS_EXECUTED.CYCLES_GE_2",
1644dfc83cc8SIan Rogers        "PublicDescription": "Cycles where at least 2 uops were executed per-thread.",
1645dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
1646dfc83cc8SIan Rogers        "UMask": "0x1",
1647dfc83cc8SIan Rogers        "Unit": "cpu_core"
1648dfc83cc8SIan Rogers    },
1649dfc83cc8SIan Rogers    {
1650dfc83cc8SIan Rogers        "BriefDescription": "Cycles where at least 3 uops were executed per-thread",
1651*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
1652dfc83cc8SIan Rogers        "CounterMask": "3",
1653dfc83cc8SIan Rogers        "EventCode": "0xb1",
1654dfc83cc8SIan Rogers        "EventName": "UOPS_EXECUTED.CYCLES_GE_3",
1655dfc83cc8SIan Rogers        "PublicDescription": "Cycles where at least 3 uops were executed per-thread.",
1656dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
1657dfc83cc8SIan Rogers        "UMask": "0x1",
1658dfc83cc8SIan Rogers        "Unit": "cpu_core"
1659dfc83cc8SIan Rogers    },
1660dfc83cc8SIan Rogers    {
1661dfc83cc8SIan Rogers        "BriefDescription": "Cycles where at least 4 uops were executed per-thread",
1662*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
1663dfc83cc8SIan Rogers        "CounterMask": "4",
1664dfc83cc8SIan Rogers        "EventCode": "0xb1",
1665dfc83cc8SIan Rogers        "EventName": "UOPS_EXECUTED.CYCLES_GE_4",
1666dfc83cc8SIan Rogers        "PublicDescription": "Cycles where at least 4 uops were executed per-thread.",
1667dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
1668dfc83cc8SIan Rogers        "UMask": "0x1",
1669dfc83cc8SIan Rogers        "Unit": "cpu_core"
1670dfc83cc8SIan Rogers    },
1671dfc83cc8SIan Rogers    {
1672dfc83cc8SIan Rogers        "BriefDescription": "Counts number of cycles no uops were dispatched to be executed on this thread.",
1673*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
1674dfc83cc8SIan Rogers        "CounterMask": "1",
1675dfc83cc8SIan Rogers        "EventCode": "0xb1",
1676dfc83cc8SIan Rogers        "EventName": "UOPS_EXECUTED.STALLS",
1677dfc83cc8SIan Rogers        "Invert": "1",
1678dfc83cc8SIan Rogers        "PublicDescription": "Counts cycles during which no uops were dispatched from the Reservation Station (RS) per thread.",
1679dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
1680dfc83cc8SIan Rogers        "UMask": "0x1",
1681dfc83cc8SIan Rogers        "Unit": "cpu_core"
1682dfc83cc8SIan Rogers    },
1683dfc83cc8SIan Rogers    {
1684dfc83cc8SIan Rogers        "BriefDescription": "Counts the number of uops to be executed per-thread each cycle.",
1685*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
1686dfc83cc8SIan Rogers        "EventCode": "0xb1",
1687dfc83cc8SIan Rogers        "EventName": "UOPS_EXECUTED.THREAD",
1688dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
1689dfc83cc8SIan Rogers        "UMask": "0x1",
1690dfc83cc8SIan Rogers        "Unit": "cpu_core"
1691dfc83cc8SIan Rogers    },
1692dfc83cc8SIan Rogers    {
1693dfc83cc8SIan Rogers        "BriefDescription": "Counts the number of x87 uops dispatched.",
1694*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
1695dfc83cc8SIan Rogers        "EventCode": "0xb1",
1696dfc83cc8SIan Rogers        "EventName": "UOPS_EXECUTED.X87",
1697dfc83cc8SIan Rogers        "PublicDescription": "Counts the number of x87 uops executed.",
1698dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
1699dfc83cc8SIan Rogers        "UMask": "0x10",
1700dfc83cc8SIan Rogers        "Unit": "cpu_core"
1701dfc83cc8SIan Rogers    },
1702dfc83cc8SIan Rogers    {
1703dfc83cc8SIan Rogers        "BriefDescription": "Counts the number of uops issued by the front end every cycle.",
1704*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
1705dfc83cc8SIan Rogers        "EventCode": "0x0e",
1706dfc83cc8SIan Rogers        "EventName": "UOPS_ISSUED.ANY",
1707dfc83cc8SIan Rogers        "PublicDescription": "Counts the number of uops issued by the front end every cycle. When 4-uops are requested and only 2-uops are delivered, the event counts 2.  Uops_issued correlates to the number of ROB entries.  If uop takes 2 ROB slots it counts as 2 uops_issued.",
1708dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
1709dfc83cc8SIan Rogers        "Unit": "cpu_atom"
1710dfc83cc8SIan Rogers    },
1711dfc83cc8SIan Rogers    {
1712dfc83cc8SIan Rogers        "BriefDescription": "Uops that RAT issues to RS",
1713*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
1714dfc83cc8SIan Rogers        "EventCode": "0xae",
1715dfc83cc8SIan Rogers        "EventName": "UOPS_ISSUED.ANY",
1716dfc83cc8SIan Rogers        "PublicDescription": "Counts the number of uops that the Resource Allocation Table (RAT) issues to the Reservation Station (RS).",
1717dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
1718dfc83cc8SIan Rogers        "UMask": "0x1",
1719dfc83cc8SIan Rogers        "Unit": "cpu_core"
1720dfc83cc8SIan Rogers    },
1721dfc83cc8SIan Rogers    {
1722dfc83cc8SIan Rogers        "BriefDescription": "UOPS_ISSUED.CYCLES",
1723*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
1724dfc83cc8SIan Rogers        "CounterMask": "1",
1725dfc83cc8SIan Rogers        "EventCode": "0xae",
1726dfc83cc8SIan Rogers        "EventName": "UOPS_ISSUED.CYCLES",
1727dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
1728dfc83cc8SIan Rogers        "UMask": "0x1",
1729dfc83cc8SIan Rogers        "Unit": "cpu_core"
1730dfc83cc8SIan Rogers    },
1731dfc83cc8SIan Rogers    {
173224773076SIan Rogers        "BriefDescription": "Counts the total number of uops retired.",
1733*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
173424773076SIan Rogers        "EventCode": "0xc2",
173524773076SIan Rogers        "EventName": "UOPS_RETIRED.ALL",
173624773076SIan Rogers        "SampleAfterValue": "2000003",
173724773076SIan Rogers        "Unit": "cpu_atom"
173824773076SIan Rogers    },
173924773076SIan Rogers    {
1740ab0cfb79SIan Rogers        "BriefDescription": "Cycles with retired uop(s).",
1741*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
1742ab0cfb79SIan Rogers        "CounterMask": "1",
1743ab0cfb79SIan Rogers        "EventCode": "0xc2",
1744ab0cfb79SIan Rogers        "EventName": "UOPS_RETIRED.CYCLES",
1745ab0cfb79SIan Rogers        "PublicDescription": "Counts cycles where at least one uop has retired.",
1746ab0cfb79SIan Rogers        "SampleAfterValue": "1000003",
1747ab0cfb79SIan Rogers        "UMask": "0x2",
1748ab0cfb79SIan Rogers        "Unit": "cpu_core"
1749ab0cfb79SIan Rogers    },
1750ab0cfb79SIan Rogers    {
1751dfc83cc8SIan Rogers        "BriefDescription": "Retired uops except the last uop of each instruction.",
1752*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
1753dfc83cc8SIan Rogers        "EventCode": "0xc2",
1754dfc83cc8SIan Rogers        "EventName": "UOPS_RETIRED.HEAVY",
1755dfc83cc8SIan Rogers        "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.",
1756dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
1757dfc83cc8SIan Rogers        "UMask": "0x1",
1758dfc83cc8SIan Rogers        "Unit": "cpu_core"
1759dfc83cc8SIan Rogers    },
1760dfc83cc8SIan Rogers    {
1761dfc83cc8SIan Rogers        "BriefDescription": "Counts the number of integer divide uops retired.",
1762*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
1763dfc83cc8SIan Rogers        "EventCode": "0xc2",
1764dfc83cc8SIan Rogers        "EventName": "UOPS_RETIRED.IDIV",
1765dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
1766dfc83cc8SIan Rogers        "UMask": "0x10",
1767dfc83cc8SIan Rogers        "Unit": "cpu_atom"
1768dfc83cc8SIan Rogers    },
1769dfc83cc8SIan Rogers    {
1770dfc83cc8SIan Rogers        "BriefDescription": "Counts the number of uops that are from the complex flows issued by the micro-sequencer (MS).  This includes uops from flows due to complex instructions, faults, assists, and inserted flows.",
1771*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
1772dfc83cc8SIan Rogers        "EventCode": "0xc2",
1773dfc83cc8SIan Rogers        "EventName": "UOPS_RETIRED.MS",
1774dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
1775dfc83cc8SIan Rogers        "UMask": "0x1",
1776dfc83cc8SIan Rogers        "Unit": "cpu_atom"
1777dfc83cc8SIan Rogers    },
1778dfc83cc8SIan Rogers    {
1779dfc83cc8SIan Rogers        "BriefDescription": "UOPS_RETIRED.MS",
1780*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
1781dfc83cc8SIan Rogers        "EventCode": "0xc2",
1782dfc83cc8SIan Rogers        "EventName": "UOPS_RETIRED.MS",
1783dfc83cc8SIan Rogers        "MSRIndex": "0x3F7",
1784dfc83cc8SIan Rogers        "MSRValue": "0x8",
1785dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
1786dfc83cc8SIan Rogers        "UMask": "0x4",
1787dfc83cc8SIan Rogers        "Unit": "cpu_core"
1788dfc83cc8SIan Rogers    },
1789dfc83cc8SIan Rogers    {
1790591530c0SIan Rogers        "BriefDescription": "This event counts a subset of the Topdown Slots event that are utilized by operations that eventually get retired (committed) by the processor pipeline. Usually, this event positively correlates with higher performance  for example, as measured by the instructions-per-cycle metric.",
1791*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
1792591530c0SIan Rogers        "EventCode": "0xc2",
1793591530c0SIan Rogers        "EventName": "UOPS_RETIRED.SLOTS",
179484d0e8c6SIan Rogers        "PublicDescription": "This event counts a subset of the Topdown Slots event that are utilized by operations that eventually get retired (committed) by the processor pipeline. Usually, this event positively correlates with higher performance  for example, as measured by the instructions-per-cycle metric. Software can use this event as the numerator for the Retiring metric (or top-level category) of the Top-down Microarchitecture Analysis method.",
1795591530c0SIan Rogers        "SampleAfterValue": "2000003",
1796591530c0SIan Rogers        "UMask": "0x2",
1797591530c0SIan Rogers        "Unit": "cpu_core"
1798dfc83cc8SIan Rogers    },
1799dfc83cc8SIan Rogers    {
1800ab0cfb79SIan Rogers        "BriefDescription": "Cycles without actually retired uops.",
1801*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
1802ab0cfb79SIan Rogers        "CounterMask": "1",
1803ab0cfb79SIan Rogers        "EventCode": "0xc2",
1804ab0cfb79SIan Rogers        "EventName": "UOPS_RETIRED.STALLS",
1805ab0cfb79SIan Rogers        "Invert": "1",
1806ab0cfb79SIan Rogers        "PublicDescription": "This event counts cycles without actually retired uops.",
1807ab0cfb79SIan Rogers        "SampleAfterValue": "1000003",
1808ab0cfb79SIan Rogers        "UMask": "0x2",
1809ab0cfb79SIan Rogers        "Unit": "cpu_core"
1810ab0cfb79SIan Rogers    },
1811ab0cfb79SIan Rogers    {
1812dfc83cc8SIan Rogers        "BriefDescription": "Counts the number of x87 uops retired, includes those in ms flows",
1813*3323532aSIan Rogers        "Counter": "0,1,2,3,4,5,6,7",
1814dfc83cc8SIan Rogers        "EventCode": "0xc2",
1815dfc83cc8SIan Rogers        "EventName": "UOPS_RETIRED.X87",
1816dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
1817dfc83cc8SIan Rogers        "UMask": "0x2",
1818dfc83cc8SIan Rogers        "Unit": "cpu_atom"
18191ab4ef06SIan Rogers    }
18201ab4ef06SIan Rogers]
1821