11ab4ef06SIan Rogers[
21ab4ef06SIan Rogers    {
3dfc83cc8SIan Rogers        "BriefDescription": "Cycles when divide unit is busy executing divide or square root operations.",
4dfc83cc8SIan Rogers        "CounterMask": "1",
5dfc83cc8SIan Rogers        "EventCode": "0xb0",
6dfc83cc8SIan Rogers        "EventName": "ARITH.DIV_ACTIVE",
7dfc83cc8SIan Rogers        "PublicDescription": "Counts cycles when divide unit is busy executing divide or square root operations. Accounts for integer and floating-point operations.",
8dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
9dfc83cc8SIan Rogers        "UMask": "0x9",
10dfc83cc8SIan Rogers        "Unit": "cpu_core"
11dfc83cc8SIan Rogers    },
12dfc83cc8SIan Rogers    {
13dfc83cc8SIan Rogers        "BriefDescription": "This event counts the cycles the integer divider is busy.",
14dfc83cc8SIan Rogers        "CounterMask": "1",
15dfc83cc8SIan Rogers        "EventCode": "0xb0",
16dfc83cc8SIan Rogers        "EventName": "ARITH.IDIV_ACTIVE",
17dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
18dfc83cc8SIan Rogers        "UMask": "0x8",
19dfc83cc8SIan Rogers        "Unit": "cpu_core"
20dfc83cc8SIan Rogers    },
21dfc83cc8SIan Rogers    {
22dfc83cc8SIan Rogers        "BriefDescription": "Number of occurrences where a microcode assist is invoked by hardware.",
23dfc83cc8SIan Rogers        "EventCode": "0xc1",
24dfc83cc8SIan Rogers        "EventName": "ASSISTS.ANY",
25dfc83cc8SIan 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.",
26dfc83cc8SIan Rogers        "SampleAfterValue": "100003",
27dfc83cc8SIan Rogers        "UMask": "0x1b",
28dfc83cc8SIan Rogers        "Unit": "cpu_core"
29dfc83cc8SIan Rogers    },
30dfc83cc8SIan Rogers    {
311ab4ef06SIan Rogers        "BriefDescription": "Counts the total number of branch instructions retired for all branch types.",
321ab4ef06SIan Rogers        "EventCode": "0xc4",
331ab4ef06SIan Rogers        "EventName": "BR_INST_RETIRED.ALL_BRANCHES",
341ab4ef06SIan Rogers        "PEBS": "1",
35591530c0SIan 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.",
361ab4ef06SIan Rogers        "SampleAfterValue": "200003",
371ab4ef06SIan Rogers        "Unit": "cpu_atom"
381ab4ef06SIan Rogers    },
391ab4ef06SIan Rogers    {
405362e4d1SIan Rogers        "BriefDescription": "All branch instructions retired.",
415362e4d1SIan Rogers        "EventCode": "0xc4",
425362e4d1SIan Rogers        "EventName": "BR_INST_RETIRED.ALL_BRANCHES",
435362e4d1SIan Rogers        "PEBS": "1",
44591530c0SIan Rogers        "PublicDescription": "Counts all branch instructions retired.",
455362e4d1SIan Rogers        "SampleAfterValue": "400009",
465362e4d1SIan Rogers        "Unit": "cpu_core"
475362e4d1SIan Rogers    },
485362e4d1SIan Rogers    {
49dfc83cc8SIan Rogers        "BriefDescription": "Conditional branch instructions retired.",
50dfc83cc8SIan Rogers        "EventCode": "0xc4",
51dfc83cc8SIan Rogers        "EventName": "BR_INST_RETIRED.COND",
52dfc83cc8SIan Rogers        "PEBS": "1",
53dfc83cc8SIan Rogers        "PublicDescription": "Counts conditional branch instructions retired.",
54dfc83cc8SIan Rogers        "SampleAfterValue": "400009",
55dfc83cc8SIan Rogers        "UMask": "0x11",
56dfc83cc8SIan Rogers        "Unit": "cpu_core"
57dfc83cc8SIan Rogers    },
58dfc83cc8SIan Rogers    {
59dfc83cc8SIan Rogers        "BriefDescription": "Not taken branch instructions retired.",
60dfc83cc8SIan Rogers        "EventCode": "0xc4",
61dfc83cc8SIan Rogers        "EventName": "BR_INST_RETIRED.COND_NTAKEN",
62dfc83cc8SIan Rogers        "PEBS": "1",
63dfc83cc8SIan Rogers        "PublicDescription": "Counts not taken branch instructions retired.",
64dfc83cc8SIan Rogers        "SampleAfterValue": "400009",
65dfc83cc8SIan Rogers        "UMask": "0x10",
66dfc83cc8SIan Rogers        "Unit": "cpu_core"
67dfc83cc8SIan Rogers    },
68dfc83cc8SIan Rogers    {
69dfc83cc8SIan Rogers        "BriefDescription": "Taken conditional branch instructions retired.",
70dfc83cc8SIan Rogers        "EventCode": "0xc4",
71dfc83cc8SIan Rogers        "EventName": "BR_INST_RETIRED.COND_TAKEN",
72dfc83cc8SIan Rogers        "PEBS": "1",
73dfc83cc8SIan Rogers        "PublicDescription": "Counts taken conditional branch instructions retired.",
74dfc83cc8SIan Rogers        "SampleAfterValue": "400009",
75dfc83cc8SIan Rogers        "UMask": "0x1",
76dfc83cc8SIan Rogers        "Unit": "cpu_core"
77dfc83cc8SIan Rogers    },
78dfc83cc8SIan Rogers    {
79dfc83cc8SIan Rogers        "BriefDescription": "Counts the number of far branch instructions retired, includes far jump, far call and return, and interrupt call and return.",
80dfc83cc8SIan Rogers        "EventCode": "0xc4",
81dfc83cc8SIan Rogers        "EventName": "BR_INST_RETIRED.FAR_BRANCH",
82dfc83cc8SIan Rogers        "PEBS": "1",
83dfc83cc8SIan Rogers        "SampleAfterValue": "200003",
84dfc83cc8SIan Rogers        "UMask": "0xbf",
85dfc83cc8SIan Rogers        "Unit": "cpu_atom"
86dfc83cc8SIan Rogers    },
87dfc83cc8SIan Rogers    {
88dfc83cc8SIan Rogers        "BriefDescription": "Far branch instructions retired.",
89dfc83cc8SIan Rogers        "EventCode": "0xc4",
90dfc83cc8SIan Rogers        "EventName": "BR_INST_RETIRED.FAR_BRANCH",
91dfc83cc8SIan Rogers        "PEBS": "1",
92dfc83cc8SIan Rogers        "PublicDescription": "Counts far branch instructions retired.",
93dfc83cc8SIan Rogers        "SampleAfterValue": "100007",
94dfc83cc8SIan Rogers        "UMask": "0x40",
95dfc83cc8SIan Rogers        "Unit": "cpu_core"
96dfc83cc8SIan Rogers    },
97dfc83cc8SIan Rogers    {
98dfc83cc8SIan Rogers        "BriefDescription": "Indirect near branch instructions retired (excluding returns)",
99dfc83cc8SIan Rogers        "EventCode": "0xc4",
100dfc83cc8SIan Rogers        "EventName": "BR_INST_RETIRED.INDIRECT",
101dfc83cc8SIan Rogers        "PEBS": "1",
102dfc83cc8SIan Rogers        "PublicDescription": "Counts near indirect branch instructions retired excluding returns. TSX abort is an indirect branch.",
103dfc83cc8SIan Rogers        "SampleAfterValue": "100003",
104dfc83cc8SIan Rogers        "UMask": "0x80",
105dfc83cc8SIan Rogers        "Unit": "cpu_core"
106dfc83cc8SIan Rogers    },
107dfc83cc8SIan Rogers    {
108dfc83cc8SIan Rogers        "BriefDescription": "Counts the number of near CALL branch instructions retired.",
109dfc83cc8SIan Rogers        "EventCode": "0xc4",
110dfc83cc8SIan Rogers        "EventName": "BR_INST_RETIRED.NEAR_CALL",
111dfc83cc8SIan Rogers        "PEBS": "1",
112dfc83cc8SIan Rogers        "SampleAfterValue": "200003",
113dfc83cc8SIan Rogers        "UMask": "0xf9",
114dfc83cc8SIan Rogers        "Unit": "cpu_atom"
115dfc83cc8SIan Rogers    },
116dfc83cc8SIan Rogers    {
117dfc83cc8SIan Rogers        "BriefDescription": "Direct and indirect near call instructions retired.",
118dfc83cc8SIan Rogers        "EventCode": "0xc4",
119dfc83cc8SIan Rogers        "EventName": "BR_INST_RETIRED.NEAR_CALL",
120dfc83cc8SIan Rogers        "PEBS": "1",
121dfc83cc8SIan Rogers        "PublicDescription": "Counts both direct and indirect near call instructions retired.",
122dfc83cc8SIan Rogers        "SampleAfterValue": "100007",
123dfc83cc8SIan Rogers        "UMask": "0x2",
124dfc83cc8SIan Rogers        "Unit": "cpu_core"
125dfc83cc8SIan Rogers    },
126dfc83cc8SIan Rogers    {
127dfc83cc8SIan Rogers        "BriefDescription": "Return instructions retired.",
128dfc83cc8SIan Rogers        "EventCode": "0xc4",
129dfc83cc8SIan Rogers        "EventName": "BR_INST_RETIRED.NEAR_RETURN",
130dfc83cc8SIan Rogers        "PEBS": "1",
131dfc83cc8SIan Rogers        "PublicDescription": "Counts return instructions retired.",
132dfc83cc8SIan Rogers        "SampleAfterValue": "100007",
133dfc83cc8SIan Rogers        "UMask": "0x8",
134dfc83cc8SIan Rogers        "Unit": "cpu_core"
135dfc83cc8SIan Rogers    },
136dfc83cc8SIan Rogers    {
137dfc83cc8SIan Rogers        "BriefDescription": "Taken branch instructions retired.",
138dfc83cc8SIan Rogers        "EventCode": "0xc4",
139dfc83cc8SIan Rogers        "EventName": "BR_INST_RETIRED.NEAR_TAKEN",
140dfc83cc8SIan Rogers        "PEBS": "1",
141dfc83cc8SIan Rogers        "PublicDescription": "Counts taken branch instructions retired.",
142dfc83cc8SIan Rogers        "SampleAfterValue": "400009",
143dfc83cc8SIan Rogers        "UMask": "0x20",
144dfc83cc8SIan Rogers        "Unit": "cpu_core"
145dfc83cc8SIan Rogers    },
146dfc83cc8SIan Rogers    {
1471ab4ef06SIan Rogers        "BriefDescription": "Counts the total number of mispredicted branch instructions retired for all branch types.",
1481ab4ef06SIan Rogers        "EventCode": "0xc5",
1491ab4ef06SIan Rogers        "EventName": "BR_MISP_RETIRED.ALL_BRANCHES",
1501ab4ef06SIan Rogers        "PEBS": "1",
151591530c0SIan 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.",
1521ab4ef06SIan Rogers        "SampleAfterValue": "200003",
1531ab4ef06SIan Rogers        "Unit": "cpu_atom"
1541ab4ef06SIan Rogers    },
1551ab4ef06SIan Rogers    {
1565362e4d1SIan Rogers        "BriefDescription": "All mispredicted branch instructions retired.",
1575362e4d1SIan Rogers        "EventCode": "0xc5",
1585362e4d1SIan Rogers        "EventName": "BR_MISP_RETIRED.ALL_BRANCHES",
1595362e4d1SIan Rogers        "PEBS": "1",
160591530c0SIan 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.",
1615362e4d1SIan Rogers        "SampleAfterValue": "400009",
1625362e4d1SIan Rogers        "Unit": "cpu_core"
1635362e4d1SIan Rogers    },
1645362e4d1SIan Rogers    {
165dfc83cc8SIan 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.",
166dfc83cc8SIan Rogers        "EventCode": "0xc5",
167dfc83cc8SIan Rogers        "EventName": "BR_MISP_RETIRED.ALL_BRANCHES_COST",
168dfc83cc8SIan Rogers        "PEBS": "1",
169dfc83cc8SIan Rogers        "SampleAfterValue": "400009",
170dfc83cc8SIan Rogers        "UMask": "0x44",
171dfc83cc8SIan Rogers        "Unit": "cpu_core"
172dfc83cc8SIan Rogers    },
173dfc83cc8SIan Rogers    {
174dfc83cc8SIan Rogers        "BriefDescription": "Counts the number of mispredicted JCC (Jump on Conditional Code) branch instructions retired.",
175dfc83cc8SIan Rogers        "EventCode": "0xc5",
176dfc83cc8SIan Rogers        "EventName": "BR_MISP_RETIRED.COND",
177dfc83cc8SIan Rogers        "PEBS": "1",
178dfc83cc8SIan Rogers        "SampleAfterValue": "200003",
179dfc83cc8SIan Rogers        "UMask": "0x7e",
180dfc83cc8SIan Rogers        "Unit": "cpu_atom"
181dfc83cc8SIan Rogers    },
182dfc83cc8SIan Rogers    {
183dfc83cc8SIan Rogers        "BriefDescription": "Mispredicted conditional branch instructions retired.",
184dfc83cc8SIan Rogers        "EventCode": "0xc5",
185dfc83cc8SIan Rogers        "EventName": "BR_MISP_RETIRED.COND",
186dfc83cc8SIan Rogers        "PEBS": "1",
187dfc83cc8SIan Rogers        "PublicDescription": "Counts mispredicted conditional branch instructions retired.",
188dfc83cc8SIan Rogers        "SampleAfterValue": "400009",
189dfc83cc8SIan Rogers        "UMask": "0x11",
190dfc83cc8SIan Rogers        "Unit": "cpu_core"
191dfc83cc8SIan Rogers    },
192dfc83cc8SIan Rogers    {
193dfc83cc8SIan 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.",
194dfc83cc8SIan Rogers        "EventCode": "0xc5",
195dfc83cc8SIan Rogers        "EventName": "BR_MISP_RETIRED.COND_COST",
196dfc83cc8SIan Rogers        "PEBS": "1",
197dfc83cc8SIan Rogers        "SampleAfterValue": "400009",
198dfc83cc8SIan Rogers        "UMask": "0x51",
199dfc83cc8SIan Rogers        "Unit": "cpu_core"
200dfc83cc8SIan Rogers    },
201dfc83cc8SIan Rogers    {
202dfc83cc8SIan Rogers        "BriefDescription": "Mispredicted non-taken conditional branch instructions retired.",
203dfc83cc8SIan Rogers        "EventCode": "0xc5",
204dfc83cc8SIan Rogers        "EventName": "BR_MISP_RETIRED.COND_NTAKEN",
205dfc83cc8SIan Rogers        "PEBS": "1",
206dfc83cc8SIan Rogers        "PublicDescription": "Counts the number of conditional branch instructions retired that were mispredicted and the branch direction was not taken.",
207dfc83cc8SIan Rogers        "SampleAfterValue": "400009",
208dfc83cc8SIan Rogers        "UMask": "0x10",
209dfc83cc8SIan Rogers        "Unit": "cpu_core"
210dfc83cc8SIan Rogers    },
211dfc83cc8SIan Rogers    {
212dfc83cc8SIan 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.",
213dfc83cc8SIan Rogers        "EventCode": "0xc5",
214dfc83cc8SIan Rogers        "EventName": "BR_MISP_RETIRED.COND_NTAKEN_COST",
215dfc83cc8SIan Rogers        "PEBS": "1",
216dfc83cc8SIan Rogers        "SampleAfterValue": "400009",
217dfc83cc8SIan Rogers        "UMask": "0x50",
218dfc83cc8SIan Rogers        "Unit": "cpu_core"
219dfc83cc8SIan Rogers    },
220dfc83cc8SIan Rogers    {
221dfc83cc8SIan Rogers        "BriefDescription": "number of branch instructions retired that were mispredicted and taken.",
222dfc83cc8SIan Rogers        "EventCode": "0xc5",
223dfc83cc8SIan Rogers        "EventName": "BR_MISP_RETIRED.COND_TAKEN",
224dfc83cc8SIan Rogers        "PEBS": "1",
225dfc83cc8SIan Rogers        "PublicDescription": "Counts taken conditional mispredicted branch instructions retired.",
226dfc83cc8SIan Rogers        "SampleAfterValue": "400009",
227dfc83cc8SIan Rogers        "UMask": "0x1",
228dfc83cc8SIan Rogers        "Unit": "cpu_core"
229dfc83cc8SIan Rogers    },
230dfc83cc8SIan Rogers    {
231dfc83cc8SIan 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.",
232dfc83cc8SIan Rogers        "EventCode": "0xc5",
233dfc83cc8SIan Rogers        "EventName": "BR_MISP_RETIRED.COND_TAKEN_COST",
234dfc83cc8SIan Rogers        "PEBS": "1",
235dfc83cc8SIan Rogers        "SampleAfterValue": "400009",
236dfc83cc8SIan Rogers        "UMask": "0x41",
237dfc83cc8SIan Rogers        "Unit": "cpu_core"
238dfc83cc8SIan Rogers    },
239dfc83cc8SIan Rogers    {
240dfc83cc8SIan Rogers        "BriefDescription": "Counts the number of mispredicted near indirect JMP and near indirect CALL branch instructions retired.",
241dfc83cc8SIan Rogers        "EventCode": "0xc5",
242dfc83cc8SIan Rogers        "EventName": "BR_MISP_RETIRED.INDIRECT",
243dfc83cc8SIan Rogers        "PEBS": "1",
244dfc83cc8SIan Rogers        "SampleAfterValue": "200003",
245dfc83cc8SIan Rogers        "UMask": "0xeb",
246dfc83cc8SIan Rogers        "Unit": "cpu_atom"
247dfc83cc8SIan Rogers    },
248dfc83cc8SIan Rogers    {
249dfc83cc8SIan Rogers        "BriefDescription": "Miss-predicted near indirect branch instructions retired (excluding returns)",
250dfc83cc8SIan Rogers        "EventCode": "0xc5",
251dfc83cc8SIan Rogers        "EventName": "BR_MISP_RETIRED.INDIRECT",
252dfc83cc8SIan Rogers        "PEBS": "1",
253dfc83cc8SIan Rogers        "PublicDescription": "Counts miss-predicted near indirect branch instructions retired excluding returns. TSX abort is an indirect branch.",
254dfc83cc8SIan Rogers        "SampleAfterValue": "100003",
255dfc83cc8SIan Rogers        "UMask": "0x80",
256dfc83cc8SIan Rogers        "Unit": "cpu_core"
257dfc83cc8SIan Rogers    },
258dfc83cc8SIan Rogers    {
259dfc83cc8SIan Rogers        "BriefDescription": "Counts the number of mispredicted near indirect CALL branch instructions retired.",
260dfc83cc8SIan Rogers        "EventCode": "0xc5",
261dfc83cc8SIan Rogers        "EventName": "BR_MISP_RETIRED.INDIRECT_CALL",
262dfc83cc8SIan Rogers        "PEBS": "1",
263dfc83cc8SIan Rogers        "SampleAfterValue": "200003",
264dfc83cc8SIan Rogers        "UMask": "0xfb",
265dfc83cc8SIan Rogers        "Unit": "cpu_atom"
266dfc83cc8SIan Rogers    },
267dfc83cc8SIan Rogers    {
268dfc83cc8SIan Rogers        "BriefDescription": "Mispredicted indirect CALL retired.",
269dfc83cc8SIan Rogers        "EventCode": "0xc5",
270dfc83cc8SIan Rogers        "EventName": "BR_MISP_RETIRED.INDIRECT_CALL",
271dfc83cc8SIan Rogers        "PEBS": "1",
272dfc83cc8SIan Rogers        "PublicDescription": "Counts retired mispredicted indirect (near taken) CALL instructions, including both register and memory indirect.",
273dfc83cc8SIan Rogers        "SampleAfterValue": "400009",
274dfc83cc8SIan Rogers        "UMask": "0x2",
275dfc83cc8SIan Rogers        "Unit": "cpu_core"
276dfc83cc8SIan Rogers    },
277dfc83cc8SIan Rogers    {
278dfc83cc8SIan 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.",
279dfc83cc8SIan Rogers        "EventCode": "0xc5",
280dfc83cc8SIan Rogers        "EventName": "BR_MISP_RETIRED.INDIRECT_CALL_COST",
281dfc83cc8SIan Rogers        "PEBS": "1",
282dfc83cc8SIan Rogers        "SampleAfterValue": "400009",
283dfc83cc8SIan Rogers        "UMask": "0x42",
284dfc83cc8SIan Rogers        "Unit": "cpu_core"
285dfc83cc8SIan Rogers    },
286dfc83cc8SIan Rogers    {
287dfc83cc8SIan 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.",
288dfc83cc8SIan Rogers        "EventCode": "0xc5",
289dfc83cc8SIan Rogers        "EventName": "BR_MISP_RETIRED.INDIRECT_COST",
290dfc83cc8SIan Rogers        "PEBS": "1",
291dfc83cc8SIan Rogers        "SampleAfterValue": "100003",
292dfc83cc8SIan Rogers        "UMask": "0xc0",
293dfc83cc8SIan Rogers        "Unit": "cpu_core"
294dfc83cc8SIan Rogers    },
295dfc83cc8SIan Rogers    {
296dfc83cc8SIan Rogers        "BriefDescription": "Number of near branch instructions retired that were mispredicted and taken.",
297dfc83cc8SIan Rogers        "EventCode": "0xc5",
298dfc83cc8SIan Rogers        "EventName": "BR_MISP_RETIRED.NEAR_TAKEN",
299dfc83cc8SIan Rogers        "PEBS": "1",
300dfc83cc8SIan Rogers        "PublicDescription": "Counts number of near branch instructions retired that were mispredicted and taken.",
301dfc83cc8SIan Rogers        "SampleAfterValue": "400009",
302dfc83cc8SIan Rogers        "UMask": "0x20",
303dfc83cc8SIan Rogers        "Unit": "cpu_core"
304dfc83cc8SIan Rogers    },
305dfc83cc8SIan Rogers    {
306dfc83cc8SIan 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.",
307dfc83cc8SIan Rogers        "EventCode": "0xc5",
308dfc83cc8SIan Rogers        "EventName": "BR_MISP_RETIRED.NEAR_TAKEN_COST",
309dfc83cc8SIan Rogers        "PEBS": "1",
310dfc83cc8SIan Rogers        "SampleAfterValue": "400009",
311dfc83cc8SIan Rogers        "UMask": "0x60",
312dfc83cc8SIan Rogers        "Unit": "cpu_core"
313dfc83cc8SIan Rogers    },
314dfc83cc8SIan Rogers    {
315*ab0cfb79SIan Rogers        "BriefDescription": "This event counts the number of mispredicted ret instructions retired. Non PEBS",
316*ab0cfb79SIan Rogers        "EventCode": "0xc5",
317*ab0cfb79SIan Rogers        "EventName": "BR_MISP_RETIRED.RET",
318*ab0cfb79SIan Rogers        "PEBS": "1",
319*ab0cfb79SIan Rogers        "PublicDescription": "This is a non-precise version (that is, does not use PEBS) of the event that counts mispredicted return instructions retired.",
320*ab0cfb79SIan Rogers        "SampleAfterValue": "100007",
321*ab0cfb79SIan Rogers        "UMask": "0x8",
322*ab0cfb79SIan Rogers        "Unit": "cpu_core"
323*ab0cfb79SIan Rogers    },
324*ab0cfb79SIan Rogers    {
325dfc83cc8SIan Rogers        "BriefDescription": "Counts the number of mispredicted near RET branch instructions retired.",
326dfc83cc8SIan Rogers        "EventCode": "0xc5",
327dfc83cc8SIan Rogers        "EventName": "BR_MISP_RETIRED.RETURN",
328dfc83cc8SIan Rogers        "PEBS": "1",
329dfc83cc8SIan Rogers        "SampleAfterValue": "200003",
330dfc83cc8SIan Rogers        "UMask": "0xf7",
331dfc83cc8SIan Rogers        "Unit": "cpu_atom"
332dfc83cc8SIan Rogers    },
333dfc83cc8SIan Rogers    {
334dfc83cc8SIan 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.",
335dfc83cc8SIan Rogers        "EventCode": "0xc5",
336dfc83cc8SIan Rogers        "EventName": "BR_MISP_RETIRED.RET_COST",
337dfc83cc8SIan Rogers        "PEBS": "1",
338dfc83cc8SIan Rogers        "SampleAfterValue": "100007",
339dfc83cc8SIan Rogers        "UMask": "0x48",
340dfc83cc8SIan Rogers        "Unit": "cpu_core"
341dfc83cc8SIan Rogers    },
342dfc83cc8SIan Rogers    {
343*ab0cfb79SIan Rogers        "BriefDescription": "Core clocks when the thread is in the C0.1 light-weight slower wakeup time but more power saving optimized state.",
344*ab0cfb79SIan Rogers        "EventCode": "0xec",
345*ab0cfb79SIan Rogers        "EventName": "CPU_CLK_UNHALTED.C01",
346*ab0cfb79SIan 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.",
347*ab0cfb79SIan Rogers        "SampleAfterValue": "2000003",
348*ab0cfb79SIan Rogers        "UMask": "0x10",
349*ab0cfb79SIan Rogers        "Unit": "cpu_core"
350*ab0cfb79SIan Rogers    },
351*ab0cfb79SIan Rogers    {
352*ab0cfb79SIan Rogers        "BriefDescription": "Core clocks when the thread is in the C0.2 light-weight faster wakeup time but less power saving optimized state.",
353*ab0cfb79SIan Rogers        "EventCode": "0xec",
354*ab0cfb79SIan Rogers        "EventName": "CPU_CLK_UNHALTED.C02",
355*ab0cfb79SIan 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.",
356*ab0cfb79SIan Rogers        "SampleAfterValue": "2000003",
357*ab0cfb79SIan Rogers        "UMask": "0x20",
358*ab0cfb79SIan Rogers        "Unit": "cpu_core"
359*ab0cfb79SIan Rogers    },
360*ab0cfb79SIan Rogers    {
361*ab0cfb79SIan Rogers        "BriefDescription": "Core clocks when the thread is in the C0.1 or C0.2 or running a PAUSE in C0 ACPI state.",
362*ab0cfb79SIan Rogers        "EventCode": "0xec",
363*ab0cfb79SIan Rogers        "EventName": "CPU_CLK_UNHALTED.C0_WAIT",
364*ab0cfb79SIan 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.",
365*ab0cfb79SIan Rogers        "SampleAfterValue": "2000003",
366*ab0cfb79SIan Rogers        "UMask": "0x70",
367*ab0cfb79SIan Rogers        "Unit": "cpu_core"
368*ab0cfb79SIan Rogers    },
369*ab0cfb79SIan Rogers    {
3701ab4ef06SIan Rogers        "BriefDescription": "Fixed Counter: Counts the number of unhalted core clock cycles",
3711ab4ef06SIan Rogers        "EventName": "CPU_CLK_UNHALTED.CORE",
3721ab4ef06SIan Rogers        "SampleAfterValue": "2000003",
3731ab4ef06SIan Rogers        "UMask": "0x2",
3741ab4ef06SIan Rogers        "Unit": "cpu_atom"
3751ab4ef06SIan Rogers    },
3761ab4ef06SIan Rogers    {
3771ab4ef06SIan Rogers        "BriefDescription": "Counts the number of unhalted core clock cycles [This event is alias to CPU_CLK_UNHALTED.THREAD_P]",
3781ab4ef06SIan Rogers        "EventCode": "0x3c",
3791ab4ef06SIan Rogers        "EventName": "CPU_CLK_UNHALTED.CORE_P",
3801ab4ef06SIan Rogers        "SampleAfterValue": "2000003",
3811ab4ef06SIan Rogers        "Unit": "cpu_atom"
3821ab4ef06SIan Rogers    },
3831ab4ef06SIan Rogers    {
384dfc83cc8SIan Rogers        "BriefDescription": "Cycle counts are evenly distributed between active threads in the Core.",
385dfc83cc8SIan Rogers        "EventCode": "0xec",
386dfc83cc8SIan Rogers        "EventName": "CPU_CLK_UNHALTED.DISTRIBUTED",
387dfc83cc8SIan 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.",
388dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
389dfc83cc8SIan Rogers        "UMask": "0x2",
390dfc83cc8SIan Rogers        "Unit": "cpu_core"
391dfc83cc8SIan Rogers    },
392dfc83cc8SIan Rogers    {
393dfc83cc8SIan Rogers        "BriefDescription": "Core crystal clock cycles when this thread is unhalted and the other thread is halted.",
394dfc83cc8SIan Rogers        "EventCode": "0x3c",
395dfc83cc8SIan Rogers        "EventName": "CPU_CLK_UNHALTED.ONE_THREAD_ACTIVE",
396dfc83cc8SIan Rogers        "PublicDescription": "Counts Core crystal clock cycles when current thread is unhalted and the other thread is halted.",
397dfc83cc8SIan Rogers        "SampleAfterValue": "25003",
398dfc83cc8SIan Rogers        "UMask": "0x2",
399dfc83cc8SIan Rogers        "Unit": "cpu_core"
400dfc83cc8SIan Rogers    },
401dfc83cc8SIan Rogers    {
402*ab0cfb79SIan Rogers        "BriefDescription": "CPU_CLK_UNHALTED.PAUSE",
403*ab0cfb79SIan Rogers        "EventCode": "0xec",
404*ab0cfb79SIan Rogers        "EventName": "CPU_CLK_UNHALTED.PAUSE",
405*ab0cfb79SIan Rogers        "SampleAfterValue": "2000003",
406*ab0cfb79SIan Rogers        "UMask": "0x40",
407*ab0cfb79SIan Rogers        "Unit": "cpu_core"
408*ab0cfb79SIan Rogers    },
409*ab0cfb79SIan Rogers    {
410*ab0cfb79SIan Rogers        "BriefDescription": "CPU_CLK_UNHALTED.PAUSE_INST",
411*ab0cfb79SIan Rogers        "CounterMask": "1",
412*ab0cfb79SIan Rogers        "EdgeDetect": "1",
413*ab0cfb79SIan Rogers        "EventCode": "0xec",
414*ab0cfb79SIan Rogers        "EventName": "CPU_CLK_UNHALTED.PAUSE_INST",
415*ab0cfb79SIan Rogers        "SampleAfterValue": "2000003",
416*ab0cfb79SIan Rogers        "UMask": "0x40",
417*ab0cfb79SIan Rogers        "Unit": "cpu_core"
418*ab0cfb79SIan Rogers    },
419*ab0cfb79SIan Rogers    {
420dfc83cc8SIan Rogers        "BriefDescription": "Core crystal clock cycles. Cycle counts are evenly distributed between active threads in the Core.",
421dfc83cc8SIan Rogers        "EventCode": "0x3c",
422dfc83cc8SIan Rogers        "EventName": "CPU_CLK_UNHALTED.REF_DISTRIBUTED",
423dfc83cc8SIan 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.",
424dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
425dfc83cc8SIan Rogers        "UMask": "0x8",
426dfc83cc8SIan Rogers        "Unit": "cpu_core"
427dfc83cc8SIan Rogers    },
428dfc83cc8SIan Rogers    {
4291ab4ef06SIan Rogers        "BriefDescription": "Fixed Counter: Counts the number of unhalted reference clock cycles",
4301ab4ef06SIan Rogers        "EventName": "CPU_CLK_UNHALTED.REF_TSC",
4311ab4ef06SIan Rogers        "SampleAfterValue": "2000003",
4321ab4ef06SIan Rogers        "UMask": "0x3",
4331ab4ef06SIan Rogers        "Unit": "cpu_atom"
4341ab4ef06SIan Rogers    },
4351ab4ef06SIan Rogers    {
4365362e4d1SIan Rogers        "BriefDescription": "Reference cycles when the core is not in halt state.",
4375362e4d1SIan Rogers        "EventName": "CPU_CLK_UNHALTED.REF_TSC",
438591530c0SIan 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.",
4395362e4d1SIan Rogers        "SampleAfterValue": "2000003",
4405362e4d1SIan Rogers        "UMask": "0x3",
4415362e4d1SIan Rogers        "Unit": "cpu_core"
4425362e4d1SIan Rogers    },
4435362e4d1SIan Rogers    {
444dfc83cc8SIan Rogers        "BriefDescription": "Counts the number of unhalted reference clock cycles at TSC frequency.",
445dfc83cc8SIan Rogers        "EventCode": "0x3c",
446dfc83cc8SIan Rogers        "EventName": "CPU_CLK_UNHALTED.REF_TSC_P",
447dfc83cc8SIan 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.",
448dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
449dfc83cc8SIan Rogers        "UMask": "0x1",
450dfc83cc8SIan Rogers        "Unit": "cpu_atom"
451dfc83cc8SIan Rogers    },
452dfc83cc8SIan Rogers    {
4535362e4d1SIan Rogers        "BriefDescription": "Reference cycles when the core is not in halt state.",
4545362e4d1SIan Rogers        "EventCode": "0x3c",
4555362e4d1SIan Rogers        "EventName": "CPU_CLK_UNHALTED.REF_TSC_P",
456591530c0SIan 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.",
4575362e4d1SIan Rogers        "SampleAfterValue": "2000003",
4585362e4d1SIan Rogers        "UMask": "0x1",
4595362e4d1SIan Rogers        "Unit": "cpu_core"
4605362e4d1SIan Rogers    },
4615362e4d1SIan Rogers    {
4621ab4ef06SIan Rogers        "BriefDescription": "Fixed Counter: Counts the number of unhalted core clock cycles",
4631ab4ef06SIan Rogers        "EventName": "CPU_CLK_UNHALTED.THREAD",
4641ab4ef06SIan Rogers        "SampleAfterValue": "2000003",
4651ab4ef06SIan Rogers        "UMask": "0x2",
4661ab4ef06SIan Rogers        "Unit": "cpu_atom"
4671ab4ef06SIan Rogers    },
4681ab4ef06SIan Rogers    {
4691ab4ef06SIan Rogers        "BriefDescription": "Core cycles when the thread is not in halt state",
4701ab4ef06SIan Rogers        "EventName": "CPU_CLK_UNHALTED.THREAD",
471591530c0SIan 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.",
4721ab4ef06SIan Rogers        "SampleAfterValue": "2000003",
4731ab4ef06SIan Rogers        "UMask": "0x2",
4741ab4ef06SIan Rogers        "Unit": "cpu_core"
4751ab4ef06SIan Rogers    },
4761ab4ef06SIan Rogers    {
4775362e4d1SIan Rogers        "BriefDescription": "Counts the number of unhalted core clock cycles [This event is alias to CPU_CLK_UNHALTED.CORE_P]",
4781ab4ef06SIan Rogers        "EventCode": "0x3c",
4791ab4ef06SIan Rogers        "EventName": "CPU_CLK_UNHALTED.THREAD_P",
4805362e4d1SIan Rogers        "SampleAfterValue": "2000003",
4815362e4d1SIan Rogers        "Unit": "cpu_atom"
4825362e4d1SIan Rogers    },
4835362e4d1SIan Rogers    {
4845362e4d1SIan Rogers        "BriefDescription": "Thread cycles when thread is not in halt state",
4855362e4d1SIan Rogers        "EventCode": "0x3c",
4865362e4d1SIan Rogers        "EventName": "CPU_CLK_UNHALTED.THREAD_P",
487591530c0SIan 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.",
4881ab4ef06SIan Rogers        "SampleAfterValue": "2000003",
4891ab4ef06SIan Rogers        "Unit": "cpu_core"
4901ab4ef06SIan Rogers    },
4911ab4ef06SIan Rogers    {
492dfc83cc8SIan Rogers        "BriefDescription": "Cycles while L1 cache miss demand load is outstanding.",
493dfc83cc8SIan Rogers        "CounterMask": "8",
494dfc83cc8SIan Rogers        "EventCode": "0xa3",
495dfc83cc8SIan Rogers        "EventName": "CYCLE_ACTIVITY.CYCLES_L1D_MISS",
496dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
497dfc83cc8SIan Rogers        "UMask": "0x8",
498dfc83cc8SIan Rogers        "Unit": "cpu_core"
499dfc83cc8SIan Rogers    },
500dfc83cc8SIan Rogers    {
501dfc83cc8SIan Rogers        "BriefDescription": "Cycles while L2 cache miss demand load is outstanding.",
502dfc83cc8SIan Rogers        "CounterMask": "1",
503dfc83cc8SIan Rogers        "EventCode": "0xa3",
504dfc83cc8SIan Rogers        "EventName": "CYCLE_ACTIVITY.CYCLES_L2_MISS",
505dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
506dfc83cc8SIan Rogers        "UMask": "0x1",
507dfc83cc8SIan Rogers        "Unit": "cpu_core"
508dfc83cc8SIan Rogers    },
509dfc83cc8SIan Rogers    {
510dfc83cc8SIan Rogers        "BriefDescription": "Cycles while memory subsystem has an outstanding load.",
511dfc83cc8SIan Rogers        "CounterMask": "16",
512dfc83cc8SIan Rogers        "EventCode": "0xa3",
513dfc83cc8SIan Rogers        "EventName": "CYCLE_ACTIVITY.CYCLES_MEM_ANY",
514dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
515dfc83cc8SIan Rogers        "UMask": "0x10",
516dfc83cc8SIan Rogers        "Unit": "cpu_core"
517dfc83cc8SIan Rogers    },
518dfc83cc8SIan Rogers    {
519dfc83cc8SIan Rogers        "BriefDescription": "Execution stalls while L1 cache miss demand load is outstanding.",
520dfc83cc8SIan Rogers        "CounterMask": "12",
521dfc83cc8SIan Rogers        "EventCode": "0xa3",
522dfc83cc8SIan Rogers        "EventName": "CYCLE_ACTIVITY.STALLS_L1D_MISS",
523dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
524dfc83cc8SIan Rogers        "UMask": "0xc",
525dfc83cc8SIan Rogers        "Unit": "cpu_core"
526dfc83cc8SIan Rogers    },
527dfc83cc8SIan Rogers    {
528dfc83cc8SIan Rogers        "BriefDescription": "Execution stalls while L2 cache miss demand load is outstanding.",
529dfc83cc8SIan Rogers        "CounterMask": "5",
530dfc83cc8SIan Rogers        "EventCode": "0xa3",
531dfc83cc8SIan Rogers        "EventName": "CYCLE_ACTIVITY.STALLS_L2_MISS",
532dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
533dfc83cc8SIan Rogers        "UMask": "0x5",
534dfc83cc8SIan Rogers        "Unit": "cpu_core"
535dfc83cc8SIan Rogers    },
536dfc83cc8SIan Rogers    {
537dfc83cc8SIan Rogers        "BriefDescription": "Total execution stalls.",
538dfc83cc8SIan Rogers        "CounterMask": "4",
539dfc83cc8SIan Rogers        "EventCode": "0xa3",
540dfc83cc8SIan Rogers        "EventName": "CYCLE_ACTIVITY.STALLS_TOTAL",
541dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
542dfc83cc8SIan Rogers        "UMask": "0x4",
543dfc83cc8SIan Rogers        "Unit": "cpu_core"
544dfc83cc8SIan Rogers    },
545dfc83cc8SIan Rogers    {
546dfc83cc8SIan Rogers        "BriefDescription": "Cycles total of 1 uop is executed on all ports and Reservation Station was not empty.",
547dfc83cc8SIan Rogers        "EventCode": "0xa6",
548dfc83cc8SIan Rogers        "EventName": "EXE_ACTIVITY.1_PORTS_UTIL",
549dfc83cc8SIan Rogers        "PublicDescription": "Counts cycles during which a total of 1 uop was executed on all ports and Reservation Station (RS) was not empty.",
550dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
551dfc83cc8SIan Rogers        "UMask": "0x2",
552dfc83cc8SIan Rogers        "Unit": "cpu_core"
553dfc83cc8SIan Rogers    },
554dfc83cc8SIan Rogers    {
555dfc83cc8SIan Rogers        "BriefDescription": "Cycles total of 2 uops are executed on all ports and Reservation Station was not empty.",
556dfc83cc8SIan Rogers        "EventCode": "0xa6",
557dfc83cc8SIan Rogers        "EventName": "EXE_ACTIVITY.2_PORTS_UTIL",
558dfc83cc8SIan Rogers        "PublicDescription": "Counts cycles during which a total of 2 uops were executed on all ports and Reservation Station (RS) was not empty.",
559dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
560dfc83cc8SIan Rogers        "UMask": "0x4",
561dfc83cc8SIan Rogers        "Unit": "cpu_core"
562dfc83cc8SIan Rogers    },
563dfc83cc8SIan Rogers    {
564dfc83cc8SIan Rogers        "BriefDescription": "Cycles total of 3 uops are executed on all ports and Reservation Station was not empty.",
565dfc83cc8SIan Rogers        "EventCode": "0xa6",
566dfc83cc8SIan Rogers        "EventName": "EXE_ACTIVITY.3_PORTS_UTIL",
567dfc83cc8SIan Rogers        "PublicDescription": "Cycles total of 3 uops are executed on all ports and Reservation Station (RS) was not empty.",
568dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
569dfc83cc8SIan Rogers        "UMask": "0x8",
570dfc83cc8SIan Rogers        "Unit": "cpu_core"
571dfc83cc8SIan Rogers    },
572dfc83cc8SIan Rogers    {
573dfc83cc8SIan Rogers        "BriefDescription": "Cycles total of 4 uops are executed on all ports and Reservation Station was not empty.",
574dfc83cc8SIan Rogers        "EventCode": "0xa6",
575dfc83cc8SIan Rogers        "EventName": "EXE_ACTIVITY.4_PORTS_UTIL",
576dfc83cc8SIan Rogers        "PublicDescription": "Cycles total of 4 uops are executed on all ports and Reservation Station (RS) was not empty.",
577dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
578dfc83cc8SIan Rogers        "UMask": "0x10",
579dfc83cc8SIan Rogers        "Unit": "cpu_core"
580dfc83cc8SIan Rogers    },
581dfc83cc8SIan Rogers    {
582dfc83cc8SIan Rogers        "BriefDescription": "Execution stalls while memory subsystem has an outstanding load.",
583dfc83cc8SIan Rogers        "CounterMask": "5",
584dfc83cc8SIan Rogers        "EventCode": "0xa6",
585dfc83cc8SIan Rogers        "EventName": "EXE_ACTIVITY.BOUND_ON_LOADS",
586dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
587dfc83cc8SIan Rogers        "UMask": "0x21",
588dfc83cc8SIan Rogers        "Unit": "cpu_core"
589dfc83cc8SIan Rogers    },
590dfc83cc8SIan Rogers    {
591dfc83cc8SIan Rogers        "BriefDescription": "Cycles where the Store Buffer was full and no loads caused an execution stall.",
592dfc83cc8SIan Rogers        "CounterMask": "2",
593dfc83cc8SIan Rogers        "EventCode": "0xa6",
594dfc83cc8SIan Rogers        "EventName": "EXE_ACTIVITY.BOUND_ON_STORES",
595dfc83cc8SIan Rogers        "PublicDescription": "Counts cycles where the Store Buffer was full and no loads caused an execution stall.",
596dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
597dfc83cc8SIan Rogers        "UMask": "0x40",
598dfc83cc8SIan Rogers        "Unit": "cpu_core"
599dfc83cc8SIan Rogers    },
600dfc83cc8SIan Rogers    {
601dfc83cc8SIan Rogers        "BriefDescription": "Cycles no uop executed while RS was not empty, the SB was not full and there was no outstanding load.",
602dfc83cc8SIan Rogers        "EventCode": "0xa6",
603dfc83cc8SIan Rogers        "EventName": "EXE_ACTIVITY.EXE_BOUND_0_PORTS",
604dfc83cc8SIan 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.",
605dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
606dfc83cc8SIan Rogers        "UMask": "0x80",
607dfc83cc8SIan Rogers        "Unit": "cpu_core"
608dfc83cc8SIan Rogers    },
609dfc83cc8SIan Rogers    {
610dfc83cc8SIan Rogers        "BriefDescription": "Instruction decoders utilized in a cycle",
611dfc83cc8SIan Rogers        "EventCode": "0x75",
612dfc83cc8SIan Rogers        "EventName": "INST_DECODED.DECODERS",
613dfc83cc8SIan Rogers        "PublicDescription": "Number of decoders utilized in a cycle when the MITE (legacy decode pipeline) fetches instructions.",
614dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
615dfc83cc8SIan Rogers        "UMask": "0x1",
616dfc83cc8SIan Rogers        "Unit": "cpu_core"
617dfc83cc8SIan Rogers    },
618dfc83cc8SIan Rogers    {
6195362e4d1SIan Rogers        "BriefDescription": "Fixed Counter: Counts the number of instructions retired",
6201ab4ef06SIan Rogers        "EventName": "INST_RETIRED.ANY",
6211ab4ef06SIan Rogers        "PEBS": "1",
6225362e4d1SIan Rogers        "SampleAfterValue": "2000003",
6235362e4d1SIan Rogers        "UMask": "0x1",
6245362e4d1SIan Rogers        "Unit": "cpu_atom"
6255362e4d1SIan Rogers    },
6265362e4d1SIan Rogers    {
6275362e4d1SIan Rogers        "BriefDescription": "Number of instructions retired. Fixed Counter - architectural event",
6285362e4d1SIan Rogers        "EventName": "INST_RETIRED.ANY",
6295362e4d1SIan Rogers        "PEBS": "1",
630591530c0SIan 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.",
6311ab4ef06SIan Rogers        "SampleAfterValue": "2000003",
6321ab4ef06SIan Rogers        "UMask": "0x1",
6331ab4ef06SIan Rogers        "Unit": "cpu_core"
6341ab4ef06SIan Rogers    },
6351ab4ef06SIan Rogers    {
6365362e4d1SIan Rogers        "BriefDescription": "Counts the number of instructions retired",
6371ab4ef06SIan Rogers        "EventCode": "0xc0",
6381ab4ef06SIan Rogers        "EventName": "INST_RETIRED.ANY_P",
6391ab4ef06SIan Rogers        "PEBS": "1",
6405362e4d1SIan Rogers        "SampleAfterValue": "2000003",
6415362e4d1SIan Rogers        "Unit": "cpu_atom"
6425362e4d1SIan Rogers    },
6435362e4d1SIan Rogers    {
6445362e4d1SIan Rogers        "BriefDescription": "Number of instructions retired. General Counter - architectural event",
6455362e4d1SIan Rogers        "EventCode": "0xc0",
6465362e4d1SIan Rogers        "EventName": "INST_RETIRED.ANY_P",
6475362e4d1SIan Rogers        "PEBS": "1",
648591530c0SIan 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.",
6491ab4ef06SIan Rogers        "SampleAfterValue": "2000003",
6501ab4ef06SIan Rogers        "Unit": "cpu_core"
6511ab4ef06SIan Rogers    },
6521ab4ef06SIan Rogers    {
653dfc83cc8SIan Rogers        "BriefDescription": "INST_RETIRED.MACRO_FUSED",
654dfc83cc8SIan Rogers        "EventCode": "0xc0",
655dfc83cc8SIan Rogers        "EventName": "INST_RETIRED.MACRO_FUSED",
656dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
657dfc83cc8SIan Rogers        "UMask": "0x10",
658dfc83cc8SIan Rogers        "Unit": "cpu_core"
659dfc83cc8SIan Rogers    },
660dfc83cc8SIan Rogers    {
661*ab0cfb79SIan Rogers        "BriefDescription": "Retired NOP instructions.",
662*ab0cfb79SIan Rogers        "EventCode": "0xc0",
663*ab0cfb79SIan Rogers        "EventName": "INST_RETIRED.NOP",
664*ab0cfb79SIan Rogers        "PublicDescription": "Counts all retired NOP or ENDBR32/64 or PREFETCHIT0/1 instructions",
665*ab0cfb79SIan Rogers        "SampleAfterValue": "2000003",
666*ab0cfb79SIan Rogers        "UMask": "0x2",
667*ab0cfb79SIan Rogers        "Unit": "cpu_core"
668*ab0cfb79SIan Rogers    },
669*ab0cfb79SIan Rogers    {
670dfc83cc8SIan Rogers        "BriefDescription": "Precise instruction retired with PEBS precise-distribution",
671dfc83cc8SIan Rogers        "EventName": "INST_RETIRED.PREC_DIST",
672dfc83cc8SIan Rogers        "PEBS": "1",
673dfc83cc8SIan 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.",
674dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
675dfc83cc8SIan Rogers        "UMask": "0x1",
676dfc83cc8SIan Rogers        "Unit": "cpu_core"
677dfc83cc8SIan Rogers    },
678dfc83cc8SIan Rogers    {
679*ab0cfb79SIan Rogers        "BriefDescription": "Iterations of Repeat string retired instructions.",
680*ab0cfb79SIan Rogers        "EventCode": "0xc0",
681*ab0cfb79SIan Rogers        "EventName": "INST_RETIRED.REP_ITERATION",
682*ab0cfb79SIan 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.",
683*ab0cfb79SIan Rogers        "SampleAfterValue": "2000003",
684*ab0cfb79SIan Rogers        "UMask": "0x8",
685*ab0cfb79SIan Rogers        "Unit": "cpu_core"
686*ab0cfb79SIan Rogers    },
687*ab0cfb79SIan Rogers    {
688dfc83cc8SIan Rogers        "BriefDescription": "Cycles the Backend cluster is recovering after a miss-speculation or a Store Buffer or Load Buffer drain stall.",
689dfc83cc8SIan Rogers        "CounterMask": "1",
690dfc83cc8SIan Rogers        "EventCode": "0xad",
691dfc83cc8SIan Rogers        "EventName": "INT_MISC.ALL_RECOVERY_CYCLES",
692dfc83cc8SIan Rogers        "PublicDescription": "Counts cycles the Backend cluster is recovering after a miss-speculation or a Store Buffer or Load Buffer drain stall.",
693dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
694dfc83cc8SIan Rogers        "UMask": "0x3",
695dfc83cc8SIan Rogers        "Unit": "cpu_core"
696dfc83cc8SIan Rogers    },
697dfc83cc8SIan Rogers    {
698*ab0cfb79SIan Rogers        "BriefDescription": "Clears speculative count",
699*ab0cfb79SIan Rogers        "CounterMask": "1",
700*ab0cfb79SIan Rogers        "EdgeDetect": "1",
701*ab0cfb79SIan Rogers        "EventCode": "0xad",
702*ab0cfb79SIan Rogers        "EventName": "INT_MISC.CLEARS_COUNT",
703*ab0cfb79SIan Rogers        "PublicDescription": "Counts the number of speculative clears due to any type of branch misprediction or machine clears",
704*ab0cfb79SIan Rogers        "SampleAfterValue": "500009",
705*ab0cfb79SIan Rogers        "UMask": "0x1",
706*ab0cfb79SIan Rogers        "Unit": "cpu_core"
707*ab0cfb79SIan Rogers    },
708*ab0cfb79SIan Rogers    {
709dfc83cc8SIan Rogers        "BriefDescription": "Counts cycles after recovery from a branch misprediction or machine clear till the first uop is issued from the resteered path.",
710dfc83cc8SIan Rogers        "EventCode": "0xad",
711dfc83cc8SIan Rogers        "EventName": "INT_MISC.CLEAR_RESTEER_CYCLES",
712dfc83cc8SIan Rogers        "PublicDescription": "Cycles after recovery from a branch misprediction or machine clear till the first uop is issued from the resteered path.",
713dfc83cc8SIan Rogers        "SampleAfterValue": "500009",
714dfc83cc8SIan Rogers        "UMask": "0x80",
715dfc83cc8SIan Rogers        "Unit": "cpu_core"
716dfc83cc8SIan Rogers    },
717dfc83cc8SIan Rogers    {
718*ab0cfb79SIan Rogers        "BriefDescription": "Cycles when Resource Allocation Table (RAT) external stall is sent to Instruction Decode Queue (IDQ) for the thread",
719*ab0cfb79SIan Rogers        "EventCode": "0xad",
720*ab0cfb79SIan Rogers        "EventName": "INT_MISC.RAT_STALLS",
721*ab0cfb79SIan Rogers        "PublicDescription": "This event counts the number of cycles during which Resource Allocation Table (RAT) external stall is sent to Instruction Decode Queue (IDQ) for the current thread. This also includes the cycles during which the Allocator is serving another thread.",
722*ab0cfb79SIan Rogers        "SampleAfterValue": "1000003",
723*ab0cfb79SIan Rogers        "UMask": "0x8",
724*ab0cfb79SIan Rogers        "Unit": "cpu_core"
725*ab0cfb79SIan Rogers    },
726*ab0cfb79SIan Rogers    {
727dfc83cc8SIan Rogers        "BriefDescription": "Core cycles the allocator was stalled due to recovery from earlier clear event for this thread",
728dfc83cc8SIan Rogers        "EventCode": "0xad",
729dfc83cc8SIan Rogers        "EventName": "INT_MISC.RECOVERY_CYCLES",
730dfc83cc8SIan Rogers        "PublicDescription": "Counts core cycles when the Resource allocator was stalled due to recovery from an earlier branch misprediction or machine clear event.",
731dfc83cc8SIan Rogers        "SampleAfterValue": "500009",
732dfc83cc8SIan Rogers        "UMask": "0x1",
733dfc83cc8SIan Rogers        "Unit": "cpu_core"
734dfc83cc8SIan Rogers    },
735dfc83cc8SIan Rogers    {
736dfc83cc8SIan Rogers        "BriefDescription": "INT_MISC.UNKNOWN_BRANCH_CYCLES",
737dfc83cc8SIan Rogers        "EventCode": "0xad",
738dfc83cc8SIan Rogers        "EventName": "INT_MISC.UNKNOWN_BRANCH_CYCLES",
739dfc83cc8SIan Rogers        "MSRIndex": "0x3F7",
740dfc83cc8SIan Rogers        "MSRValue": "0x7",
741dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
742dfc83cc8SIan Rogers        "UMask": "0x40",
743dfc83cc8SIan Rogers        "Unit": "cpu_core"
744dfc83cc8SIan Rogers    },
745dfc83cc8SIan Rogers    {
746dfc83cc8SIan Rogers        "BriefDescription": "TMA slots where uops got dropped",
747dfc83cc8SIan Rogers        "EventCode": "0xad",
748dfc83cc8SIan Rogers        "EventName": "INT_MISC.UOP_DROPPING",
749dfc83cc8SIan Rogers        "PublicDescription": "Estimated number of Top-down Microarchitecture Analysis slots that got dropped due to non front-end reasons",
750dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
751dfc83cc8SIan Rogers        "UMask": "0x10",
752dfc83cc8SIan Rogers        "Unit": "cpu_core"
753dfc83cc8SIan Rogers    },
754dfc83cc8SIan Rogers    {
755dfc83cc8SIan Rogers        "BriefDescription": "INT_VEC_RETIRED.128BIT",
756dfc83cc8SIan Rogers        "EventCode": "0xe7",
757dfc83cc8SIan Rogers        "EventName": "INT_VEC_RETIRED.128BIT",
758dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
759dfc83cc8SIan Rogers        "UMask": "0x13",
760dfc83cc8SIan Rogers        "Unit": "cpu_core"
761dfc83cc8SIan Rogers    },
762dfc83cc8SIan Rogers    {
763dfc83cc8SIan Rogers        "BriefDescription": "INT_VEC_RETIRED.256BIT",
764dfc83cc8SIan Rogers        "EventCode": "0xe7",
765dfc83cc8SIan Rogers        "EventName": "INT_VEC_RETIRED.256BIT",
766dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
767dfc83cc8SIan Rogers        "UMask": "0xac",
768dfc83cc8SIan Rogers        "Unit": "cpu_core"
769dfc83cc8SIan Rogers    },
770dfc83cc8SIan Rogers    {
771dfc83cc8SIan Rogers        "BriefDescription": "integer ADD, SUB, SAD 128-bit vector instructions.",
772dfc83cc8SIan Rogers        "EventCode": "0xe7",
773dfc83cc8SIan Rogers        "EventName": "INT_VEC_RETIRED.ADD_128",
774dfc83cc8SIan Rogers        "PublicDescription": "Number of retired integer ADD/SUB (regular or horizontal), SAD 128-bit vector instructions.",
775dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
776dfc83cc8SIan Rogers        "UMask": "0x3",
777dfc83cc8SIan Rogers        "Unit": "cpu_core"
778dfc83cc8SIan Rogers    },
779dfc83cc8SIan Rogers    {
780dfc83cc8SIan Rogers        "BriefDescription": "integer ADD, SUB, SAD 256-bit vector instructions.",
781dfc83cc8SIan Rogers        "EventCode": "0xe7",
782dfc83cc8SIan Rogers        "EventName": "INT_VEC_RETIRED.ADD_256",
783dfc83cc8SIan Rogers        "PublicDescription": "Number of retired integer ADD/SUB (regular or horizontal), SAD 256-bit vector instructions.",
784dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
785dfc83cc8SIan Rogers        "UMask": "0xc",
786dfc83cc8SIan Rogers        "Unit": "cpu_core"
787dfc83cc8SIan Rogers    },
788dfc83cc8SIan Rogers    {
789dfc83cc8SIan Rogers        "BriefDescription": "INT_VEC_RETIRED.MUL_256",
790dfc83cc8SIan Rogers        "EventCode": "0xe7",
791dfc83cc8SIan Rogers        "EventName": "INT_VEC_RETIRED.MUL_256",
792dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
793dfc83cc8SIan Rogers        "UMask": "0x80",
794dfc83cc8SIan Rogers        "Unit": "cpu_core"
795dfc83cc8SIan Rogers    },
796dfc83cc8SIan Rogers    {
797dfc83cc8SIan Rogers        "BriefDescription": "INT_VEC_RETIRED.SHUFFLES",
798dfc83cc8SIan Rogers        "EventCode": "0xe7",
799dfc83cc8SIan Rogers        "EventName": "INT_VEC_RETIRED.SHUFFLES",
800dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
801dfc83cc8SIan Rogers        "UMask": "0x40",
802dfc83cc8SIan Rogers        "Unit": "cpu_core"
803dfc83cc8SIan Rogers    },
804dfc83cc8SIan Rogers    {
805dfc83cc8SIan Rogers        "BriefDescription": "INT_VEC_RETIRED.VNNI_128",
806dfc83cc8SIan Rogers        "EventCode": "0xe7",
807dfc83cc8SIan Rogers        "EventName": "INT_VEC_RETIRED.VNNI_128",
808dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
809dfc83cc8SIan Rogers        "UMask": "0x10",
810dfc83cc8SIan Rogers        "Unit": "cpu_core"
811dfc83cc8SIan Rogers    },
812dfc83cc8SIan Rogers    {
813dfc83cc8SIan Rogers        "BriefDescription": "INT_VEC_RETIRED.VNNI_256",
814dfc83cc8SIan Rogers        "EventCode": "0xe7",
815dfc83cc8SIan Rogers        "EventName": "INT_VEC_RETIRED.VNNI_256",
816dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
817dfc83cc8SIan Rogers        "UMask": "0x20",
818dfc83cc8SIan Rogers        "Unit": "cpu_core"
819dfc83cc8SIan Rogers    },
820dfc83cc8SIan Rogers    {
821dfc83cc8SIan 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.",
822dfc83cc8SIan Rogers        "EventCode": "0x03",
823dfc83cc8SIan Rogers        "EventName": "LD_BLOCKS.ADDRESS_ALIAS",
824dfc83cc8SIan Rogers        "PEBS": "1",
825dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
826dfc83cc8SIan Rogers        "UMask": "0x4",
827dfc83cc8SIan Rogers        "Unit": "cpu_atom"
828dfc83cc8SIan Rogers    },
829dfc83cc8SIan Rogers    {
830*ab0cfb79SIan Rogers        "BriefDescription": "False dependencies in MOB due to partial compare on address.",
831*ab0cfb79SIan Rogers        "EventCode": "0x03",
832*ab0cfb79SIan Rogers        "EventName": "LD_BLOCKS.ADDRESS_ALIAS",
833*ab0cfb79SIan Rogers        "PublicDescription": "Counts the number of times a load got blocked due to false dependencies in MOB due to partial compare on address.",
834*ab0cfb79SIan Rogers        "SampleAfterValue": "100003",
835*ab0cfb79SIan Rogers        "UMask": "0x4",
836*ab0cfb79SIan Rogers        "Unit": "cpu_core"
837*ab0cfb79SIan Rogers    },
838*ab0cfb79SIan Rogers    {
839dfc83cc8SIan Rogers        "BriefDescription": "Counts the number of retired loads that are blocked because its address exactly matches an older store whose data is not ready.",
840dfc83cc8SIan Rogers        "EventCode": "0x03",
841dfc83cc8SIan Rogers        "EventName": "LD_BLOCKS.DATA_UNKNOWN",
842dfc83cc8SIan Rogers        "PEBS": "1",
843dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
844dfc83cc8SIan Rogers        "UMask": "0x1",
845dfc83cc8SIan Rogers        "Unit": "cpu_atom"
846dfc83cc8SIan Rogers    },
847dfc83cc8SIan Rogers    {
848*ab0cfb79SIan Rogers        "BriefDescription": "The number of times that split load operations are temporarily blocked because all resources for handling the split accesses are in use.",
849*ab0cfb79SIan Rogers        "EventCode": "0x03",
850*ab0cfb79SIan Rogers        "EventName": "LD_BLOCKS.NO_SR",
851*ab0cfb79SIan 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.",
852*ab0cfb79SIan Rogers        "SampleAfterValue": "100003",
853*ab0cfb79SIan Rogers        "UMask": "0x88",
854*ab0cfb79SIan Rogers        "Unit": "cpu_core"
855*ab0cfb79SIan Rogers    },
856*ab0cfb79SIan Rogers    {
857dfc83cc8SIan Rogers        "BriefDescription": "Counts the number of retired loads that are blocked because its address partially overlapped with an older store.",
8581ab4ef06SIan Rogers        "EventCode": "0x03",
8591ab4ef06SIan Rogers        "EventName": "LD_BLOCKS.STORE_FORWARD",
860dfc83cc8SIan Rogers        "PEBS": "1",
861dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
862dfc83cc8SIan Rogers        "UMask": "0x2",
863dfc83cc8SIan Rogers        "Unit": "cpu_atom"
864dfc83cc8SIan Rogers    },
865dfc83cc8SIan Rogers    {
866*ab0cfb79SIan Rogers        "BriefDescription": "Loads blocked due to overlapping with a preceding store that cannot be forwarded.",
867*ab0cfb79SIan Rogers        "EventCode": "0x03",
868*ab0cfb79SIan Rogers        "EventName": "LD_BLOCKS.STORE_FORWARD",
869*ab0cfb79SIan 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.",
870*ab0cfb79SIan Rogers        "SampleAfterValue": "100003",
871*ab0cfb79SIan Rogers        "UMask": "0x82",
872*ab0cfb79SIan Rogers        "Unit": "cpu_core"
873*ab0cfb79SIan Rogers    },
874*ab0cfb79SIan Rogers    {
875dfc83cc8SIan Rogers        "BriefDescription": "Cycles Uops delivered by the LSD, but didn't come from the decoder.",
876dfc83cc8SIan Rogers        "CounterMask": "1",
877dfc83cc8SIan Rogers        "EventCode": "0xa8",
878dfc83cc8SIan Rogers        "EventName": "LSD.CYCLES_ACTIVE",
879dfc83cc8SIan Rogers        "PublicDescription": "Counts the cycles when at least one uop is delivered by the LSD (Loop-stream detector).",
880dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
881dfc83cc8SIan Rogers        "UMask": "0x1",
882dfc83cc8SIan Rogers        "Unit": "cpu_core"
883dfc83cc8SIan Rogers    },
884dfc83cc8SIan Rogers    {
885dfc83cc8SIan Rogers        "BriefDescription": "Cycles optimal number of Uops delivered by the LSD, but did not come from the decoder.",
886dfc83cc8SIan Rogers        "CounterMask": "6",
887dfc83cc8SIan Rogers        "EventCode": "0xa8",
888dfc83cc8SIan Rogers        "EventName": "LSD.CYCLES_OK",
889dfc83cc8SIan Rogers        "PublicDescription": "Counts the cycles when optimal number of uops is delivered by the LSD (Loop-stream detector).",
890dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
891dfc83cc8SIan Rogers        "UMask": "0x1",
892dfc83cc8SIan Rogers        "Unit": "cpu_core"
893dfc83cc8SIan Rogers    },
894dfc83cc8SIan Rogers    {
895dfc83cc8SIan Rogers        "BriefDescription": "Number of Uops delivered by the LSD.",
896dfc83cc8SIan Rogers        "EventCode": "0xa8",
897dfc83cc8SIan Rogers        "EventName": "LSD.UOPS",
898dfc83cc8SIan Rogers        "PublicDescription": "Counts the number of uops delivered to the back-end by the LSD(Loop Stream Detector).",
899dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
900dfc83cc8SIan Rogers        "UMask": "0x1",
901dfc83cc8SIan Rogers        "Unit": "cpu_core"
902dfc83cc8SIan Rogers    },
903dfc83cc8SIan Rogers    {
904dfc83cc8SIan Rogers        "BriefDescription": "Number of machine clears (nukes) of any type.",
905dfc83cc8SIan Rogers        "CounterMask": "1",
906dfc83cc8SIan Rogers        "EdgeDetect": "1",
907dfc83cc8SIan Rogers        "EventCode": "0xc3",
908dfc83cc8SIan Rogers        "EventName": "MACHINE_CLEARS.COUNT",
909dfc83cc8SIan Rogers        "PublicDescription": "Counts the number of machine clears (nukes) of any type.",
9101ab4ef06SIan Rogers        "SampleAfterValue": "100003",
911dfc83cc8SIan Rogers        "UMask": "0x1",
912dfc83cc8SIan Rogers        "Unit": "cpu_core"
913dfc83cc8SIan Rogers    },
914dfc83cc8SIan Rogers    {
915dfc83cc8SIan 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.",
916dfc83cc8SIan Rogers        "EventCode": "0xc3",
917dfc83cc8SIan Rogers        "EventName": "MACHINE_CLEARS.DISAMBIGUATION",
918dfc83cc8SIan Rogers        "SampleAfterValue": "20003",
919dfc83cc8SIan Rogers        "UMask": "0x8",
920dfc83cc8SIan Rogers        "Unit": "cpu_atom"
921dfc83cc8SIan Rogers    },
922dfc83cc8SIan Rogers    {
923dfc83cc8SIan 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.",
924dfc83cc8SIan Rogers        "EventCode": "0xc3",
925dfc83cc8SIan Rogers        "EventName": "MACHINE_CLEARS.PAGE_FAULT",
926dfc83cc8SIan Rogers        "SampleAfterValue": "20003",
927dfc83cc8SIan Rogers        "UMask": "0x20",
928dfc83cc8SIan Rogers        "Unit": "cpu_atom"
929dfc83cc8SIan Rogers    },
930dfc83cc8SIan Rogers    {
931dfc83cc8SIan 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.",
932dfc83cc8SIan Rogers        "EventCode": "0xc3",
933dfc83cc8SIan Rogers        "EventName": "MACHINE_CLEARS.SLOW",
934dfc83cc8SIan Rogers        "SampleAfterValue": "20003",
935dfc83cc8SIan Rogers        "UMask": "0x6f",
936dfc83cc8SIan Rogers        "Unit": "cpu_atom"
937dfc83cc8SIan Rogers    },
938dfc83cc8SIan Rogers    {
939dfc83cc8SIan Rogers        "BriefDescription": "Counts the number of machine clears due to program modifying data (self modifying code) within 1K of a recently fetched code page.",
940dfc83cc8SIan Rogers        "EventCode": "0xc3",
941dfc83cc8SIan Rogers        "EventName": "MACHINE_CLEARS.SMC",
942dfc83cc8SIan Rogers        "SampleAfterValue": "20003",
943dfc83cc8SIan Rogers        "UMask": "0x1",
944dfc83cc8SIan Rogers        "Unit": "cpu_atom"
945dfc83cc8SIan Rogers    },
946dfc83cc8SIan Rogers    {
947*ab0cfb79SIan Rogers        "BriefDescription": "Self-modifying code (SMC) detected.",
948*ab0cfb79SIan Rogers        "EventCode": "0xc3",
949*ab0cfb79SIan Rogers        "EventName": "MACHINE_CLEARS.SMC",
950*ab0cfb79SIan Rogers        "PublicDescription": "Counts self-modifying code (SMC) detected, which causes a machine clear.",
951*ab0cfb79SIan Rogers        "SampleAfterValue": "100003",
952*ab0cfb79SIan Rogers        "UMask": "0x4",
953*ab0cfb79SIan Rogers        "Unit": "cpu_core"
954*ab0cfb79SIan Rogers    },
955*ab0cfb79SIan Rogers    {
956*ab0cfb79SIan Rogers        "BriefDescription": "LFENCE instructions retired",
957*ab0cfb79SIan Rogers        "EventCode": "0xe0",
958*ab0cfb79SIan Rogers        "EventName": "MISC2_RETIRED.LFENCE",
959*ab0cfb79SIan Rogers        "PublicDescription": "number of LFENCE retired instructions",
960*ab0cfb79SIan Rogers        "SampleAfterValue": "400009",
961*ab0cfb79SIan Rogers        "UMask": "0x20",
962*ab0cfb79SIan Rogers        "Unit": "cpu_core"
963*ab0cfb79SIan Rogers    },
964*ab0cfb79SIan Rogers    {
965dfc83cc8SIan Rogers        "BriefDescription": "Counts cycles where the pipeline is stalled due to serializing operations.",
966dfc83cc8SIan Rogers        "EventCode": "0xa2",
967dfc83cc8SIan Rogers        "EventName": "RESOURCE_STALLS.SCOREBOARD",
968dfc83cc8SIan Rogers        "SampleAfterValue": "100003",
969dfc83cc8SIan Rogers        "UMask": "0x2",
9701ab4ef06SIan Rogers        "Unit": "cpu_core"
9711ab4ef06SIan Rogers    },
9721ab4ef06SIan Rogers    {
973591530c0SIan 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.",
974591530c0SIan Rogers        "EventCode": "0xa4",
975591530c0SIan Rogers        "EventName": "TOPDOWN.BACKEND_BOUND_SLOTS",
976591530c0SIan 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.\nThe 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.",
977591530c0SIan Rogers        "SampleAfterValue": "10000003",
978591530c0SIan Rogers        "UMask": "0x2",
979591530c0SIan Rogers        "Unit": "cpu_core"
980591530c0SIan Rogers    },
981591530c0SIan Rogers    {
982dfc83cc8SIan Rogers        "BriefDescription": "TMA slots wasted due to incorrect speculations.",
983dfc83cc8SIan Rogers        "EventCode": "0xa4",
984dfc83cc8SIan Rogers        "EventName": "TOPDOWN.BAD_SPEC_SLOTS",
985dfc83cc8SIan 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.",
986dfc83cc8SIan Rogers        "SampleAfterValue": "10000003",
987dfc83cc8SIan Rogers        "UMask": "0x4",
988dfc83cc8SIan Rogers        "Unit": "cpu_core"
989dfc83cc8SIan Rogers    },
990dfc83cc8SIan Rogers    {
991dfc83cc8SIan Rogers        "BriefDescription": "TMA slots wasted due to incorrect speculation by branch mispredictions",
992dfc83cc8SIan Rogers        "EventCode": "0xa4",
993dfc83cc8SIan Rogers        "EventName": "TOPDOWN.BR_MISPREDICT_SLOTS",
994dfc83cc8SIan 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.",
995dfc83cc8SIan Rogers        "SampleAfterValue": "10000003",
996dfc83cc8SIan Rogers        "UMask": "0x8",
997dfc83cc8SIan Rogers        "Unit": "cpu_core"
998dfc83cc8SIan Rogers    },
999dfc83cc8SIan Rogers    {
1000dfc83cc8SIan Rogers        "BriefDescription": "TOPDOWN.MEMORY_BOUND_SLOTS",
1001dfc83cc8SIan Rogers        "EventCode": "0xa4",
1002dfc83cc8SIan Rogers        "EventName": "TOPDOWN.MEMORY_BOUND_SLOTS",
1003dfc83cc8SIan Rogers        "SampleAfterValue": "10000003",
1004dfc83cc8SIan Rogers        "UMask": "0x10",
1005dfc83cc8SIan Rogers        "Unit": "cpu_core"
1006dfc83cc8SIan Rogers    },
1007dfc83cc8SIan Rogers    {
10081ab4ef06SIan Rogers        "BriefDescription": "TMA slots available for an unhalted logical processor. Fixed counter - architectural event",
10091ab4ef06SIan Rogers        "EventName": "TOPDOWN.SLOTS",
1010591530c0SIan 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).",
10111ab4ef06SIan Rogers        "SampleAfterValue": "10000003",
10121ab4ef06SIan Rogers        "UMask": "0x4",
10131ab4ef06SIan Rogers        "Unit": "cpu_core"
10141ab4ef06SIan Rogers    },
10151ab4ef06SIan Rogers    {
10161ab4ef06SIan Rogers        "BriefDescription": "TMA slots available for an unhalted logical processor. General counter - architectural event",
10171ab4ef06SIan Rogers        "EventCode": "0xa4",
10181ab4ef06SIan Rogers        "EventName": "TOPDOWN.SLOTS_P",
1019591530c0SIan 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.",
10201ab4ef06SIan Rogers        "SampleAfterValue": "10000003",
10211ab4ef06SIan Rogers        "UMask": "0x1",
10221ab4ef06SIan Rogers        "Unit": "cpu_core"
10235362e4d1SIan Rogers    },
10245362e4d1SIan Rogers    {
10255362e4d1SIan 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.",
10265362e4d1SIan Rogers        "EventCode": "0x73",
10275362e4d1SIan Rogers        "EventName": "TOPDOWN_BAD_SPECULATION.ALL",
1028591530c0SIan 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.",
10295362e4d1SIan Rogers        "SampleAfterValue": "1000003",
10305362e4d1SIan Rogers        "Unit": "cpu_atom"
10315362e4d1SIan Rogers    },
10325362e4d1SIan Rogers    {
1033dfc83cc8SIan 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",
1034dfc83cc8SIan Rogers        "EventCode": "0x73",
1035dfc83cc8SIan Rogers        "EventName": "TOPDOWN_BAD_SPECULATION.FASTNUKE",
1036dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
1037dfc83cc8SIan Rogers        "UMask": "0x2",
1038dfc83cc8SIan Rogers        "Unit": "cpu_atom"
1039dfc83cc8SIan Rogers    },
1040dfc83cc8SIan Rogers    {
1041dfc83cc8SIan 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.",
1042dfc83cc8SIan Rogers        "EventCode": "0x73",
1043dfc83cc8SIan Rogers        "EventName": "TOPDOWN_BAD_SPECULATION.MACHINE_CLEARS",
1044dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
1045dfc83cc8SIan Rogers        "UMask": "0x3",
1046dfc83cc8SIan Rogers        "Unit": "cpu_atom"
1047dfc83cc8SIan Rogers    },
1048dfc83cc8SIan Rogers    {
1049dfc83cc8SIan Rogers        "BriefDescription": "Counts the number of issue slots every cycle that were not consumed by the backend due to a machine clear (nuke).",
1050dfc83cc8SIan Rogers        "EventCode": "0x73",
1051dfc83cc8SIan Rogers        "EventName": "TOPDOWN_BAD_SPECULATION.NUKE",
1052dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
1053dfc83cc8SIan Rogers        "UMask": "0x1",
1054dfc83cc8SIan Rogers        "Unit": "cpu_atom"
1055dfc83cc8SIan Rogers    },
1056dfc83cc8SIan Rogers    {
10575362e4d1SIan Rogers        "BriefDescription": "Counts the number of retirement slots not consumed due to backend stalls",
10585362e4d1SIan Rogers        "EventCode": "0x74",
10595362e4d1SIan Rogers        "EventName": "TOPDOWN_BE_BOUND.ALL",
10605362e4d1SIan Rogers        "SampleAfterValue": "1000003",
10615362e4d1SIan Rogers        "Unit": "cpu_atom"
10625362e4d1SIan Rogers    },
10635362e4d1SIan Rogers    {
1064dfc83cc8SIan Rogers        "BriefDescription": "Counts the number of issue slots every cycle that were not consumed by the backend due to due to certain allocation restrictions",
1065dfc83cc8SIan Rogers        "EventCode": "0x74",
1066dfc83cc8SIan Rogers        "EventName": "TOPDOWN_BE_BOUND.ALLOC_RESTRICTIONS",
1067dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
1068dfc83cc8SIan Rogers        "UMask": "0x1",
1069dfc83cc8SIan Rogers        "Unit": "cpu_atom"
1070dfc83cc8SIan Rogers    },
1071dfc83cc8SIan Rogers    {
1072dfc83cc8SIan 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).",
1073dfc83cc8SIan Rogers        "EventCode": "0x74",
1074dfc83cc8SIan Rogers        "EventName": "TOPDOWN_BE_BOUND.REGISTER",
1075dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
1076dfc83cc8SIan Rogers        "UMask": "0x20",
1077dfc83cc8SIan Rogers        "Unit": "cpu_atom"
1078dfc83cc8SIan Rogers    },
1079dfc83cc8SIan Rogers    {
1080dfc83cc8SIan 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",
1081dfc83cc8SIan Rogers        "EventCode": "0x74",
1082dfc83cc8SIan Rogers        "EventName": "TOPDOWN_BE_BOUND.SERIALIZATION",
1083dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
1084dfc83cc8SIan Rogers        "UMask": "0x10",
1085dfc83cc8SIan Rogers        "Unit": "cpu_atom"
1086dfc83cc8SIan Rogers    },
1087dfc83cc8SIan Rogers    {
10885362e4d1SIan Rogers        "BriefDescription": "Counts the number of retirement slots not consumed due to front end stalls",
10895362e4d1SIan Rogers        "EventCode": "0x71",
10905362e4d1SIan Rogers        "EventName": "TOPDOWN_FE_BOUND.ALL",
10915362e4d1SIan Rogers        "SampleAfterValue": "1000003",
10925362e4d1SIan Rogers        "Unit": "cpu_atom"
10935362e4d1SIan Rogers    },
10945362e4d1SIan Rogers    {
1095dfc83cc8SIan Rogers        "BriefDescription": "Counts the number of issue slots every cycle that were not delivered by the frontend due to BAClear",
1096dfc83cc8SIan Rogers        "EventCode": "0x71",
1097dfc83cc8SIan Rogers        "EventName": "TOPDOWN_FE_BOUND.BRANCH_DETECT",
1098dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
1099dfc83cc8SIan Rogers        "UMask": "0x2",
1100dfc83cc8SIan Rogers        "Unit": "cpu_atom"
1101dfc83cc8SIan Rogers    },
1102dfc83cc8SIan Rogers    {
1103dfc83cc8SIan Rogers        "BriefDescription": "Counts the number of issue slots every cycle that were not delivered by the frontend due to BTClear",
1104dfc83cc8SIan Rogers        "EventCode": "0x71",
1105dfc83cc8SIan Rogers        "EventName": "TOPDOWN_FE_BOUND.BRANCH_RESTEER",
1106dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
1107dfc83cc8SIan Rogers        "UMask": "0x40",
1108dfc83cc8SIan Rogers        "Unit": "cpu_atom"
1109dfc83cc8SIan Rogers    },
1110dfc83cc8SIan Rogers    {
1111dfc83cc8SIan Rogers        "BriefDescription": "Counts the number of issue slots every cycle that were not delivered by the frontend due to ms",
1112dfc83cc8SIan Rogers        "EventCode": "0x71",
1113dfc83cc8SIan Rogers        "EventName": "TOPDOWN_FE_BOUND.CISC",
1114dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
1115dfc83cc8SIan Rogers        "UMask": "0x1",
1116dfc83cc8SIan Rogers        "Unit": "cpu_atom"
1117dfc83cc8SIan Rogers    },
1118dfc83cc8SIan Rogers    {
1119dfc83cc8SIan Rogers        "BriefDescription": "Counts the number of issue slots every cycle that were not delivered by the frontend due to decode stall",
1120dfc83cc8SIan Rogers        "EventCode": "0x71",
1121dfc83cc8SIan Rogers        "EventName": "TOPDOWN_FE_BOUND.DECODE",
1122dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
1123dfc83cc8SIan Rogers        "UMask": "0x8",
1124dfc83cc8SIan Rogers        "Unit": "cpu_atom"
1125dfc83cc8SIan Rogers    },
1126dfc83cc8SIan Rogers    {
1127dfc83cc8SIan 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.",
1128dfc83cc8SIan Rogers        "EventCode": "0x71",
1129dfc83cc8SIan Rogers        "EventName": "TOPDOWN_FE_BOUND.FRONTEND_BANDWIDTH",
1130dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
1131dfc83cc8SIan Rogers        "UMask": "0x8d",
1132dfc83cc8SIan Rogers        "Unit": "cpu_atom"
1133dfc83cc8SIan Rogers    },
1134dfc83cc8SIan Rogers    {
1135dfc83cc8SIan 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.",
1136dfc83cc8SIan Rogers        "EventCode": "0x71",
1137dfc83cc8SIan Rogers        "EventName": "TOPDOWN_FE_BOUND.FRONTEND_LATENCY",
1138dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
1139dfc83cc8SIan Rogers        "UMask": "0x72",
1140dfc83cc8SIan Rogers        "Unit": "cpu_atom"
1141dfc83cc8SIan Rogers    },
1142dfc83cc8SIan Rogers    {
1143dfc83cc8SIan Rogers        "BriefDescription": "This event is deprecated. [This event is alias to TOPDOWN_FE_BOUND.ITLB_MISS]",
1144dfc83cc8SIan Rogers        "Deprecated": "1",
1145dfc83cc8SIan Rogers        "EventCode": "0x71",
1146dfc83cc8SIan Rogers        "EventName": "TOPDOWN_FE_BOUND.ITLB",
1147dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
1148dfc83cc8SIan Rogers        "UMask": "0x10",
1149dfc83cc8SIan Rogers        "Unit": "cpu_atom"
1150dfc83cc8SIan Rogers    },
1151dfc83cc8SIan Rogers    {
1152dfc83cc8SIan 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]",
1153dfc83cc8SIan Rogers        "EventCode": "0x71",
1154dfc83cc8SIan Rogers        "EventName": "TOPDOWN_FE_BOUND.ITLB_MISS",
1155dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
1156dfc83cc8SIan Rogers        "UMask": "0x10",
1157dfc83cc8SIan Rogers        "Unit": "cpu_atom"
1158dfc83cc8SIan Rogers    },
1159dfc83cc8SIan Rogers    {
1160dfc83cc8SIan Rogers        "BriefDescription": "Counts the number of issue slots every cycle that were not delivered by the frontend due to predecode wrong",
1161dfc83cc8SIan Rogers        "EventCode": "0x71",
1162dfc83cc8SIan Rogers        "EventName": "TOPDOWN_FE_BOUND.PREDECODE",
1163dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
1164dfc83cc8SIan Rogers        "UMask": "0x4",
1165dfc83cc8SIan Rogers        "Unit": "cpu_atom"
1166dfc83cc8SIan Rogers    },
1167dfc83cc8SIan Rogers    {
11685362e4d1SIan Rogers        "BriefDescription": "Counts the number of consumed retirement slots.  Similar to UOPS_RETIRED.ALL",
11695362e4d1SIan Rogers        "EventCode": "0x72",
11705362e4d1SIan Rogers        "EventName": "TOPDOWN_RETIRING.ALL",
11715362e4d1SIan Rogers        "PEBS": "1",
11725362e4d1SIan Rogers        "SampleAfterValue": "1000003",
11735362e4d1SIan Rogers        "Unit": "cpu_atom"
1174591530c0SIan Rogers    },
1175591530c0SIan Rogers    {
1176dfc83cc8SIan Rogers        "BriefDescription": "Number of non dec-by-all uops decoded by decoder",
1177dfc83cc8SIan Rogers        "EventCode": "0x76",
1178dfc83cc8SIan Rogers        "EventName": "UOPS_DECODED.DEC0_UOPS",
1179dfc83cc8SIan Rogers        "PublicDescription": "This event counts the number of not dec-by-all uops decoded by decoder 0.",
1180dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
1181dfc83cc8SIan Rogers        "UMask": "0x1",
1182dfc83cc8SIan Rogers        "Unit": "cpu_core"
1183dfc83cc8SIan Rogers    },
1184dfc83cc8SIan Rogers    {
1185dfc83cc8SIan Rogers        "BriefDescription": "Uops executed on port 0",
1186dfc83cc8SIan Rogers        "EventCode": "0xb2",
1187dfc83cc8SIan Rogers        "EventName": "UOPS_DISPATCHED.PORT_0",
1188dfc83cc8SIan Rogers        "PublicDescription": "Number of uops dispatch to execution  port 0.",
1189dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
1190dfc83cc8SIan Rogers        "UMask": "0x1",
1191dfc83cc8SIan Rogers        "Unit": "cpu_core"
1192dfc83cc8SIan Rogers    },
1193dfc83cc8SIan Rogers    {
1194dfc83cc8SIan Rogers        "BriefDescription": "Uops executed on port 1",
1195dfc83cc8SIan Rogers        "EventCode": "0xb2",
1196dfc83cc8SIan Rogers        "EventName": "UOPS_DISPATCHED.PORT_1",
1197dfc83cc8SIan Rogers        "PublicDescription": "Number of uops dispatch to execution  port 1.",
1198dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
1199dfc83cc8SIan Rogers        "UMask": "0x2",
1200dfc83cc8SIan Rogers        "Unit": "cpu_core"
1201dfc83cc8SIan Rogers    },
1202dfc83cc8SIan Rogers    {
1203dfc83cc8SIan Rogers        "BriefDescription": "Uops executed on ports 2, 3 and 10",
1204dfc83cc8SIan Rogers        "EventCode": "0xb2",
1205dfc83cc8SIan Rogers        "EventName": "UOPS_DISPATCHED.PORT_2_3_10",
1206dfc83cc8SIan Rogers        "PublicDescription": "Number of uops dispatch to execution ports 2, 3 and 10",
1207dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
1208dfc83cc8SIan Rogers        "UMask": "0x4",
1209dfc83cc8SIan Rogers        "Unit": "cpu_core"
1210dfc83cc8SIan Rogers    },
1211dfc83cc8SIan Rogers    {
1212dfc83cc8SIan Rogers        "BriefDescription": "Uops executed on ports 4 and 9",
1213dfc83cc8SIan Rogers        "EventCode": "0xb2",
1214dfc83cc8SIan Rogers        "EventName": "UOPS_DISPATCHED.PORT_4_9",
1215dfc83cc8SIan Rogers        "PublicDescription": "Number of uops dispatch to execution ports 4 and 9",
1216dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
1217dfc83cc8SIan Rogers        "UMask": "0x10",
1218dfc83cc8SIan Rogers        "Unit": "cpu_core"
1219dfc83cc8SIan Rogers    },
1220dfc83cc8SIan Rogers    {
1221dfc83cc8SIan Rogers        "BriefDescription": "Uops executed on ports 5 and 11",
1222dfc83cc8SIan Rogers        "EventCode": "0xb2",
1223dfc83cc8SIan Rogers        "EventName": "UOPS_DISPATCHED.PORT_5_11",
1224dfc83cc8SIan Rogers        "PublicDescription": "Number of uops dispatch to execution ports 5 and 11",
1225dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
1226dfc83cc8SIan Rogers        "UMask": "0x20",
1227dfc83cc8SIan Rogers        "Unit": "cpu_core"
1228dfc83cc8SIan Rogers    },
1229dfc83cc8SIan Rogers    {
1230dfc83cc8SIan Rogers        "BriefDescription": "Uops executed on port 6",
1231dfc83cc8SIan Rogers        "EventCode": "0xb2",
1232dfc83cc8SIan Rogers        "EventName": "UOPS_DISPATCHED.PORT_6",
1233dfc83cc8SIan Rogers        "PublicDescription": "Number of uops dispatch to execution  port 6.",
1234dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
1235dfc83cc8SIan Rogers        "UMask": "0x40",
1236dfc83cc8SIan Rogers        "Unit": "cpu_core"
1237dfc83cc8SIan Rogers    },
1238dfc83cc8SIan Rogers    {
1239dfc83cc8SIan Rogers        "BriefDescription": "Uops executed on ports 7 and 8",
1240dfc83cc8SIan Rogers        "EventCode": "0xb2",
1241dfc83cc8SIan Rogers        "EventName": "UOPS_DISPATCHED.PORT_7_8",
1242dfc83cc8SIan Rogers        "PublicDescription": "Number of uops dispatch to execution  ports 7 and 8.",
1243dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
1244dfc83cc8SIan Rogers        "UMask": "0x80",
1245dfc83cc8SIan Rogers        "Unit": "cpu_core"
1246dfc83cc8SIan Rogers    },
1247dfc83cc8SIan Rogers    {
1248dfc83cc8SIan Rogers        "BriefDescription": "Number of uops executed on the core.",
1249dfc83cc8SIan Rogers        "EventCode": "0xb1",
1250dfc83cc8SIan Rogers        "EventName": "UOPS_EXECUTED.CORE",
1251dfc83cc8SIan Rogers        "PublicDescription": "Counts the number of uops executed from any thread.",
1252dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
1253dfc83cc8SIan Rogers        "UMask": "0x2",
1254dfc83cc8SIan Rogers        "Unit": "cpu_core"
1255dfc83cc8SIan Rogers    },
1256dfc83cc8SIan Rogers    {
1257dfc83cc8SIan Rogers        "BriefDescription": "Cycles at least 1 micro-op is executed from any thread on physical core.",
1258dfc83cc8SIan Rogers        "CounterMask": "1",
1259dfc83cc8SIan Rogers        "EventCode": "0xb1",
1260dfc83cc8SIan Rogers        "EventName": "UOPS_EXECUTED.CORE_CYCLES_GE_1",
1261dfc83cc8SIan Rogers        "PublicDescription": "Counts cycles when at least 1 micro-op is executed from any thread on physical core.",
1262dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
1263dfc83cc8SIan Rogers        "UMask": "0x2",
1264dfc83cc8SIan Rogers        "Unit": "cpu_core"
1265dfc83cc8SIan Rogers    },
1266dfc83cc8SIan Rogers    {
1267dfc83cc8SIan Rogers        "BriefDescription": "Cycles at least 2 micro-op is executed from any thread on physical core.",
1268dfc83cc8SIan Rogers        "CounterMask": "2",
1269dfc83cc8SIan Rogers        "EventCode": "0xb1",
1270dfc83cc8SIan Rogers        "EventName": "UOPS_EXECUTED.CORE_CYCLES_GE_2",
1271dfc83cc8SIan Rogers        "PublicDescription": "Counts cycles when at least 2 micro-ops are executed from any thread on physical core.",
1272dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
1273dfc83cc8SIan Rogers        "UMask": "0x2",
1274dfc83cc8SIan Rogers        "Unit": "cpu_core"
1275dfc83cc8SIan Rogers    },
1276dfc83cc8SIan Rogers    {
1277dfc83cc8SIan Rogers        "BriefDescription": "Cycles at least 3 micro-op is executed from any thread on physical core.",
1278dfc83cc8SIan Rogers        "CounterMask": "3",
1279dfc83cc8SIan Rogers        "EventCode": "0xb1",
1280dfc83cc8SIan Rogers        "EventName": "UOPS_EXECUTED.CORE_CYCLES_GE_3",
1281dfc83cc8SIan Rogers        "PublicDescription": "Counts cycles when at least 3 micro-ops are executed from any thread on physical core.",
1282dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
1283dfc83cc8SIan Rogers        "UMask": "0x2",
1284dfc83cc8SIan Rogers        "Unit": "cpu_core"
1285dfc83cc8SIan Rogers    },
1286dfc83cc8SIan Rogers    {
1287dfc83cc8SIan Rogers        "BriefDescription": "Cycles at least 4 micro-op is executed from any thread on physical core.",
1288dfc83cc8SIan Rogers        "CounterMask": "4",
1289dfc83cc8SIan Rogers        "EventCode": "0xb1",
1290dfc83cc8SIan Rogers        "EventName": "UOPS_EXECUTED.CORE_CYCLES_GE_4",
1291dfc83cc8SIan Rogers        "PublicDescription": "Counts cycles when at least 4 micro-ops are executed from any thread on physical core.",
1292dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
1293dfc83cc8SIan Rogers        "UMask": "0x2",
1294dfc83cc8SIan Rogers        "Unit": "cpu_core"
1295dfc83cc8SIan Rogers    },
1296dfc83cc8SIan Rogers    {
1297dfc83cc8SIan Rogers        "BriefDescription": "Cycles where at least 1 uop was executed per-thread",
1298dfc83cc8SIan Rogers        "CounterMask": "1",
1299dfc83cc8SIan Rogers        "EventCode": "0xb1",
1300dfc83cc8SIan Rogers        "EventName": "UOPS_EXECUTED.CYCLES_GE_1",
1301dfc83cc8SIan Rogers        "PublicDescription": "Cycles where at least 1 uop was executed per-thread.",
1302dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
1303dfc83cc8SIan Rogers        "UMask": "0x1",
1304dfc83cc8SIan Rogers        "Unit": "cpu_core"
1305dfc83cc8SIan Rogers    },
1306dfc83cc8SIan Rogers    {
1307dfc83cc8SIan Rogers        "BriefDescription": "Cycles where at least 2 uops were executed per-thread",
1308dfc83cc8SIan Rogers        "CounterMask": "2",
1309dfc83cc8SIan Rogers        "EventCode": "0xb1",
1310dfc83cc8SIan Rogers        "EventName": "UOPS_EXECUTED.CYCLES_GE_2",
1311dfc83cc8SIan Rogers        "PublicDescription": "Cycles where at least 2 uops were executed per-thread.",
1312dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
1313dfc83cc8SIan Rogers        "UMask": "0x1",
1314dfc83cc8SIan Rogers        "Unit": "cpu_core"
1315dfc83cc8SIan Rogers    },
1316dfc83cc8SIan Rogers    {
1317dfc83cc8SIan Rogers        "BriefDescription": "Cycles where at least 3 uops were executed per-thread",
1318dfc83cc8SIan Rogers        "CounterMask": "3",
1319dfc83cc8SIan Rogers        "EventCode": "0xb1",
1320dfc83cc8SIan Rogers        "EventName": "UOPS_EXECUTED.CYCLES_GE_3",
1321dfc83cc8SIan Rogers        "PublicDescription": "Cycles where at least 3 uops were executed per-thread.",
1322dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
1323dfc83cc8SIan Rogers        "UMask": "0x1",
1324dfc83cc8SIan Rogers        "Unit": "cpu_core"
1325dfc83cc8SIan Rogers    },
1326dfc83cc8SIan Rogers    {
1327dfc83cc8SIan Rogers        "BriefDescription": "Cycles where at least 4 uops were executed per-thread",
1328dfc83cc8SIan Rogers        "CounterMask": "4",
1329dfc83cc8SIan Rogers        "EventCode": "0xb1",
1330dfc83cc8SIan Rogers        "EventName": "UOPS_EXECUTED.CYCLES_GE_4",
1331dfc83cc8SIan Rogers        "PublicDescription": "Cycles where at least 4 uops were executed per-thread.",
1332dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
1333dfc83cc8SIan Rogers        "UMask": "0x1",
1334dfc83cc8SIan Rogers        "Unit": "cpu_core"
1335dfc83cc8SIan Rogers    },
1336dfc83cc8SIan Rogers    {
1337dfc83cc8SIan Rogers        "BriefDescription": "Counts number of cycles no uops were dispatched to be executed on this thread.",
1338dfc83cc8SIan Rogers        "CounterMask": "1",
1339dfc83cc8SIan Rogers        "EventCode": "0xb1",
1340dfc83cc8SIan Rogers        "EventName": "UOPS_EXECUTED.STALLS",
1341dfc83cc8SIan Rogers        "Invert": "1",
1342dfc83cc8SIan Rogers        "PublicDescription": "Counts cycles during which no uops were dispatched from the Reservation Station (RS) per thread.",
1343dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
1344dfc83cc8SIan Rogers        "UMask": "0x1",
1345dfc83cc8SIan Rogers        "Unit": "cpu_core"
1346dfc83cc8SIan Rogers    },
1347dfc83cc8SIan Rogers    {
1348dfc83cc8SIan Rogers        "BriefDescription": "Counts the number of uops to be executed per-thread each cycle.",
1349dfc83cc8SIan Rogers        "EventCode": "0xb1",
1350dfc83cc8SIan Rogers        "EventName": "UOPS_EXECUTED.THREAD",
1351dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
1352dfc83cc8SIan Rogers        "UMask": "0x1",
1353dfc83cc8SIan Rogers        "Unit": "cpu_core"
1354dfc83cc8SIan Rogers    },
1355dfc83cc8SIan Rogers    {
1356dfc83cc8SIan Rogers        "BriefDescription": "Counts the number of x87 uops dispatched.",
1357dfc83cc8SIan Rogers        "EventCode": "0xb1",
1358dfc83cc8SIan Rogers        "EventName": "UOPS_EXECUTED.X87",
1359dfc83cc8SIan Rogers        "PublicDescription": "Counts the number of x87 uops executed.",
1360dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
1361dfc83cc8SIan Rogers        "UMask": "0x10",
1362dfc83cc8SIan Rogers        "Unit": "cpu_core"
1363dfc83cc8SIan Rogers    },
1364dfc83cc8SIan Rogers    {
1365dfc83cc8SIan Rogers        "BriefDescription": "Counts the number of uops issued by the front end every cycle.",
1366dfc83cc8SIan Rogers        "EventCode": "0x0e",
1367dfc83cc8SIan Rogers        "EventName": "UOPS_ISSUED.ANY",
1368dfc83cc8SIan 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.",
1369dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
1370dfc83cc8SIan Rogers        "Unit": "cpu_atom"
1371dfc83cc8SIan Rogers    },
1372dfc83cc8SIan Rogers    {
1373dfc83cc8SIan Rogers        "BriefDescription": "Uops that RAT issues to RS",
1374dfc83cc8SIan Rogers        "EventCode": "0xae",
1375dfc83cc8SIan Rogers        "EventName": "UOPS_ISSUED.ANY",
1376dfc83cc8SIan Rogers        "PublicDescription": "Counts the number of uops that the Resource Allocation Table (RAT) issues to the Reservation Station (RS).",
1377dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
1378dfc83cc8SIan Rogers        "UMask": "0x1",
1379dfc83cc8SIan Rogers        "Unit": "cpu_core"
1380dfc83cc8SIan Rogers    },
1381dfc83cc8SIan Rogers    {
1382dfc83cc8SIan Rogers        "BriefDescription": "UOPS_ISSUED.CYCLES",
1383dfc83cc8SIan Rogers        "CounterMask": "1",
1384dfc83cc8SIan Rogers        "EventCode": "0xae",
1385dfc83cc8SIan Rogers        "EventName": "UOPS_ISSUED.CYCLES",
1386dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
1387dfc83cc8SIan Rogers        "UMask": "0x1",
1388dfc83cc8SIan Rogers        "Unit": "cpu_core"
1389dfc83cc8SIan Rogers    },
1390dfc83cc8SIan Rogers    {
1391dfc83cc8SIan Rogers        "BriefDescription": "Cycles when RAT does not issue Uops to RS for the thread",
1392dfc83cc8SIan Rogers        "CounterMask": "1",
1393dfc83cc8SIan Rogers        "EventCode": "0xae",
1394dfc83cc8SIan Rogers        "EventName": "UOPS_ISSUED.STALLS",
1395dfc83cc8SIan Rogers        "Invert": "1",
1396dfc83cc8SIan Rogers        "PublicDescription": "Counts cycles during which the Resource Allocation Table (RAT) does not issue any Uops to the reservation station (RS) for the current thread.",
1397dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
1398dfc83cc8SIan Rogers        "UMask": "0x1",
1399dfc83cc8SIan Rogers        "Unit": "cpu_core"
1400dfc83cc8SIan Rogers    },
1401dfc83cc8SIan Rogers    {
1402*ab0cfb79SIan Rogers        "BriefDescription": "Cycles with retired uop(s).",
1403*ab0cfb79SIan Rogers        "CounterMask": "1",
1404*ab0cfb79SIan Rogers        "EventCode": "0xc2",
1405*ab0cfb79SIan Rogers        "EventName": "UOPS_RETIRED.CYCLES",
1406*ab0cfb79SIan Rogers        "PublicDescription": "Counts cycles where at least one uop has retired.",
1407*ab0cfb79SIan Rogers        "SampleAfterValue": "1000003",
1408*ab0cfb79SIan Rogers        "UMask": "0x2",
1409*ab0cfb79SIan Rogers        "Unit": "cpu_core"
1410*ab0cfb79SIan Rogers    },
1411*ab0cfb79SIan Rogers    {
1412dfc83cc8SIan Rogers        "BriefDescription": "Retired uops except the last uop of each instruction.",
1413dfc83cc8SIan Rogers        "EventCode": "0xc2",
1414dfc83cc8SIan Rogers        "EventName": "UOPS_RETIRED.HEAVY",
1415dfc83cc8SIan 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.",
1416dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
1417dfc83cc8SIan Rogers        "UMask": "0x1",
1418dfc83cc8SIan Rogers        "Unit": "cpu_core"
1419dfc83cc8SIan Rogers    },
1420dfc83cc8SIan Rogers    {
1421dfc83cc8SIan Rogers        "BriefDescription": "Counts the number of integer divide uops retired.",
1422dfc83cc8SIan Rogers        "EventCode": "0xc2",
1423dfc83cc8SIan Rogers        "EventName": "UOPS_RETIRED.IDIV",
1424dfc83cc8SIan Rogers        "PEBS": "1",
1425dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
1426dfc83cc8SIan Rogers        "UMask": "0x10",
1427dfc83cc8SIan Rogers        "Unit": "cpu_atom"
1428dfc83cc8SIan Rogers    },
1429dfc83cc8SIan Rogers    {
1430dfc83cc8SIan 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.",
1431dfc83cc8SIan Rogers        "EventCode": "0xc2",
1432dfc83cc8SIan Rogers        "EventName": "UOPS_RETIRED.MS",
1433dfc83cc8SIan Rogers        "PEBS": "1",
1434dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
1435dfc83cc8SIan Rogers        "UMask": "0x1",
1436dfc83cc8SIan Rogers        "Unit": "cpu_atom"
1437dfc83cc8SIan Rogers    },
1438dfc83cc8SIan Rogers    {
1439dfc83cc8SIan Rogers        "BriefDescription": "UOPS_RETIRED.MS",
1440dfc83cc8SIan Rogers        "EventCode": "0xc2",
1441dfc83cc8SIan Rogers        "EventName": "UOPS_RETIRED.MS",
1442dfc83cc8SIan Rogers        "MSRIndex": "0x3F7",
1443dfc83cc8SIan Rogers        "MSRValue": "0x8",
1444dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
1445dfc83cc8SIan Rogers        "UMask": "0x4",
1446dfc83cc8SIan Rogers        "Unit": "cpu_core"
1447dfc83cc8SIan Rogers    },
1448dfc83cc8SIan Rogers    {
1449591530c0SIan 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.",
1450591530c0SIan Rogers        "EventCode": "0xc2",
1451591530c0SIan Rogers        "EventName": "UOPS_RETIRED.SLOTS",
1452591530c0SIan 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.\nSoftware can use this event as the numerator for the Retiring metric (or top-level category) of the Top-down Microarchitecture Analysis method.",
1453591530c0SIan Rogers        "SampleAfterValue": "2000003",
1454591530c0SIan Rogers        "UMask": "0x2",
1455591530c0SIan Rogers        "Unit": "cpu_core"
1456dfc83cc8SIan Rogers    },
1457dfc83cc8SIan Rogers    {
1458*ab0cfb79SIan Rogers        "BriefDescription": "Cycles without actually retired uops.",
1459*ab0cfb79SIan Rogers        "CounterMask": "1",
1460*ab0cfb79SIan Rogers        "EventCode": "0xc2",
1461*ab0cfb79SIan Rogers        "EventName": "UOPS_RETIRED.STALLS",
1462*ab0cfb79SIan Rogers        "Invert": "1",
1463*ab0cfb79SIan Rogers        "PublicDescription": "This event counts cycles without actually retired uops.",
1464*ab0cfb79SIan Rogers        "SampleAfterValue": "1000003",
1465*ab0cfb79SIan Rogers        "UMask": "0x2",
1466*ab0cfb79SIan Rogers        "Unit": "cpu_core"
1467*ab0cfb79SIan Rogers    },
1468*ab0cfb79SIan Rogers    {
1469dfc83cc8SIan Rogers        "BriefDescription": "Cycles with less than 10 actually retired uops.",
1470dfc83cc8SIan Rogers        "CounterMask": "10",
1471dfc83cc8SIan Rogers        "EventCode": "0xc2",
1472dfc83cc8SIan Rogers        "EventName": "UOPS_RETIRED.TOTAL_CYCLES",
1473dfc83cc8SIan Rogers        "Invert": "1",
1474dfc83cc8SIan Rogers        "PublicDescription": "Counts the number of cycles using always true condition (uops_ret < 16) applied to non PEBS uops retired event.",
1475dfc83cc8SIan Rogers        "SampleAfterValue": "1000003",
1476dfc83cc8SIan Rogers        "UMask": "0x2",
1477dfc83cc8SIan Rogers        "Unit": "cpu_core"
1478dfc83cc8SIan Rogers    },
1479dfc83cc8SIan Rogers    {
1480dfc83cc8SIan Rogers        "BriefDescription": "Counts the number of x87 uops retired, includes those in ms flows",
1481dfc83cc8SIan Rogers        "EventCode": "0xc2",
1482dfc83cc8SIan Rogers        "EventName": "UOPS_RETIRED.X87",
1483dfc83cc8SIan Rogers        "PEBS": "1",
1484dfc83cc8SIan Rogers        "SampleAfterValue": "2000003",
1485dfc83cc8SIan Rogers        "UMask": "0x2",
1486dfc83cc8SIan Rogers        "Unit": "cpu_atom"
14871ab4ef06SIan Rogers    }
14881ab4ef06SIan Rogers]
1489