xref: /freebsd/lib/libpmc/pmu-events/arch/x86/haswell/pipeline.json (revision 25ecdc7d52770caf1c9b44b5ec11f468f6b636f3)
1[
2    {
3        "PublicDescription": "This event counts the number of instructions retired from execution. For instructions that consist of multiple micro-ops, this event counts the retirement of the last micro-op of the instruction. Counting continues during hardware interrupts, traps, and inside interrupt handlers. INST_RETIRED.ANY is counted by a designated fixed counter, leaving the programmable counters available for other events. Faulting executions of GETSEC/VM entry/VM Exit/MWait will not count as retired instructions.",
4        "Counter": "Fixed counter 0",
5        "UMask": "0x1",
6        "Errata": "HSD140, HSD143",
7        "EventName": "INST_RETIRED.ANY",
8        "SampleAfterValue": "2000003",
9        "BriefDescription": "Instructions retired from execution.",
10        "CounterHTOff": "Fixed counter 0"
11    },
12    {
13        "PublicDescription": "This event 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.",
14        "Counter": "Fixed counter 1",
15        "UMask": "0x2",
16        "EventName": "CPU_CLK_UNHALTED.THREAD",
17        "SampleAfterValue": "2000003",
18        "BriefDescription": "Core cycles when the thread is not in halt state.",
19        "CounterHTOff": "Fixed counter 1"
20    },
21    {
22        "Counter": "Fixed counter 1",
23        "UMask": "0x2",
24        "AnyThread": "1",
25        "EventName": "CPU_CLK_UNHALTED.THREAD_ANY",
26        "SampleAfterValue": "2000003",
27        "BriefDescription": "Core cycles when at least one thread on the physical core is not in halt state.",
28        "CounterHTOff": "Fixed counter 1"
29    },
30    {
31        "PublicDescription": "This event 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.",
32        "Counter": "Fixed counter 2",
33        "UMask": "0x3",
34        "EventName": "CPU_CLK_UNHALTED.REF_TSC",
35        "SampleAfterValue": "2000003",
36        "BriefDescription": "Reference cycles when the core is not in halt state.",
37        "CounterHTOff": "Fixed counter 2"
38    },
39    {
40        "PublicDescription": "This event counts loads that followed a store to the same address, where the data could not be forwarded inside the pipeline from the store to the load.  The most common reason why store forwarding would be blocked is when a load's address range overlaps with a preceding smaller uncompleted store. The penalty for blocked store forwarding is that the load must wait for the store to write its value to the cache before it can be issued.",
41        "EventCode": "0x03",
42        "Counter": "0,1,2,3",
43        "UMask": "0x2",
44        "EventName": "LD_BLOCKS.STORE_FORWARD",
45        "SampleAfterValue": "100003",
46        "BriefDescription": "loads blocked by overlapping with store buffer that cannot be forwarded",
47        "CounterHTOff": "0,1,2,3,4,5,6,7"
48    },
49    {
50        "PublicDescription": "The number of times that split load operations are temporarily blocked because all resources for handling the split accesses are in use.",
51        "EventCode": "0x03",
52        "Counter": "0,1,2,3",
53        "UMask": "0x8",
54        "EventName": "LD_BLOCKS.NO_SR",
55        "SampleAfterValue": "100003",
56        "BriefDescription": "The number of times that split load operations are temporarily blocked because all resources for handling the split accesses are in use",
57        "CounterHTOff": "0,1,2,3,4,5,6,7"
58    },
59    {
60        "PublicDescription": "Aliasing occurs when a load is issued after a store and their memory addresses are offset by 4K.  This event counts the number of loads that aliased with a preceding store, resulting in an extended address check in the pipeline which can have a performance impact.",
61        "EventCode": "0x07",
62        "Counter": "0,1,2,3",
63        "UMask": "0x1",
64        "EventName": "LD_BLOCKS_PARTIAL.ADDRESS_ALIAS",
65        "SampleAfterValue": "100003",
66        "BriefDescription": "False dependencies in MOB due to partial compare on address.",
67        "CounterHTOff": "0,1,2,3,4,5,6,7"
68    },
69    {
70        "PublicDescription": "This event counts the number of cycles spent waiting for a recovery after an event such as a processor nuke, JEClear, assist, hle/rtm abort etc.",
71        "EventCode": "0x0D",
72        "Counter": "0,1,2,3",
73        "UMask": "0x3",
74        "EventName": "INT_MISC.RECOVERY_CYCLES",
75        "SampleAfterValue": "2000003",
76        "BriefDescription": "Core cycles the allocator was stalled due to recovery from earlier clear event for this thread (e.g. misprediction or memory nuke)",
77        "CounterMask": "1",
78        "CounterHTOff": "0,1,2,3,4,5,6,7"
79    },
80    {
81        "PublicDescription": "Core cycles the allocator was stalled due to recovery from earlier clear event for any thread running on the physical core (e.g. misprediction or memory nuke).",
82        "EventCode": "0x0D",
83        "Counter": "0,1,2,3",
84        "UMask": "0x3",
85        "AnyThread": "1",
86        "EventName": "INT_MISC.RECOVERY_CYCLES_ANY",
87        "SampleAfterValue": "2000003",
88        "BriefDescription": "Core cycles the allocator was stalled due to recovery from earlier clear event for any thread running on the physical core (e.g. misprediction or memory nuke)",
89        "CounterMask": "1",
90        "CounterHTOff": "0,1,2,3,4,5,6,7"
91    },
92    {
93        "PublicDescription": "This event counts the number of uops issued by the Front-end of the pipeline to the Back-end. This event is counted at the allocation stage and will count both retired and non-retired uops.",
94        "EventCode": "0x0E",
95        "Counter": "0,1,2,3",
96        "UMask": "0x1",
97        "EventName": "UOPS_ISSUED.ANY",
98        "SampleAfterValue": "2000003",
99        "BriefDescription": "Uops that Resource Allocation Table (RAT) issues to Reservation Station (RS)",
100        "CounterHTOff": "0,1,2,3,4,5,6,7"
101    },
102    {
103        "EventCode": "0x0E",
104        "Invert": "1",
105        "Counter": "0,1,2,3",
106        "UMask": "0x1",
107        "EventName": "UOPS_ISSUED.STALL_CYCLES",
108        "SampleAfterValue": "2000003",
109        "BriefDescription": "Cycles when Resource Allocation Table (RAT) does not issue Uops to Reservation Station (RS) for the thread.",
110        "CounterMask": "1",
111        "CounterHTOff": "0,1,2,3"
112    },
113    {
114        "EventCode": "0x0E",
115        "Invert": "1",
116        "Counter": "0,1,2,3",
117        "UMask": "0x1",
118        "AnyThread": "1",
119        "EventName": "UOPS_ISSUED.CORE_STALL_CYCLES",
120        "SampleAfterValue": "2000003",
121        "BriefDescription": "Cycles when Resource Allocation Table (RAT) does not issue Uops to Reservation Station (RS) for all threads.",
122        "CounterMask": "1",
123        "CounterHTOff": "0,1,2,3"
124    },
125    {
126        "PublicDescription": "Number of flags-merge uops allocated. Such uops add delay.",
127        "EventCode": "0x0E",
128        "Counter": "0,1,2,3",
129        "UMask": "0x10",
130        "EventName": "UOPS_ISSUED.FLAGS_MERGE",
131        "SampleAfterValue": "2000003",
132        "BriefDescription": "Number of flags-merge uops being allocated. Such uops considered perf sensitive; added by GSR u-arch.",
133        "CounterHTOff": "0,1,2,3,4,5,6,7"
134    },
135    {
136        "PublicDescription": "Number of slow LEA or similar uops allocated. Such uop has 3 sources (for example, 2 sources + immediate) regardless of whether it is a result of LEA instruction or not.",
137        "EventCode": "0x0E",
138        "Counter": "0,1,2,3",
139        "UMask": "0x20",
140        "EventName": "UOPS_ISSUED.SLOW_LEA",
141        "SampleAfterValue": "2000003",
142        "BriefDescription": "Number of slow LEA uops being allocated. A uop is generally considered SlowLea if it has 3 sources (e.g. 2 sources + immediate) regardless if as a result of LEA instruction or not.",
143        "CounterHTOff": "0,1,2,3,4,5,6,7"
144    },
145    {
146        "PublicDescription": "Number of multiply packed/scalar single precision uops allocated.",
147        "EventCode": "0x0E",
148        "Counter": "0,1,2,3",
149        "UMask": "0x40",
150        "EventName": "UOPS_ISSUED.SINGLE_MUL",
151        "SampleAfterValue": "2000003",
152        "BriefDescription": "Number of Multiply packed/scalar single precision uops allocated",
153        "CounterHTOff": "0,1,2,3,4,5,6,7"
154    },
155    {
156        "EventCode": "0x14",
157        "Counter": "0,1,2,3",
158        "UMask": "0x2",
159        "EventName": "ARITH.DIVIDER_UOPS",
160        "SampleAfterValue": "2000003",
161        "BriefDescription": "Any uop executed by the Divider. (This includes all divide uops, sqrt, ...)",
162        "CounterHTOff": "0,1,2,3,4,5,6,7"
163    },
164    {
165        "PublicDescription": "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.",
166        "EventCode": "0x3C",
167        "Counter": "0,1,2,3",
168        "UMask": "0x0",
169        "EventName": "CPU_CLK_UNHALTED.THREAD_P",
170        "SampleAfterValue": "2000003",
171        "BriefDescription": "Thread cycles when thread is not in halt state",
172        "CounterHTOff": "0,1,2,3,4,5,6,7"
173    },
174    {
175        "EventCode": "0x3C",
176        "Counter": "0,1,2,3",
177        "UMask": "0x0",
178        "AnyThread": "1",
179        "EventName": "CPU_CLK_UNHALTED.THREAD_P_ANY",
180        "SampleAfterValue": "2000003",
181        "BriefDescription": "Core cycles when at least one thread on the physical core is not in halt state.",
182        "CounterHTOff": "0,1,2,3,4,5,6,7"
183    },
184    {
185        "PublicDescription": "Increments at the frequency of XCLK (100 MHz) when not halted.",
186        "EventCode": "0x3C",
187        "Counter": "0,1,2,3",
188        "UMask": "0x1",
189        "EventName": "CPU_CLK_THREAD_UNHALTED.REF_XCLK",
190        "SampleAfterValue": "2000003",
191        "BriefDescription": "Reference cycles when the thread is unhalted (counts at 100 MHz rate)",
192        "CounterHTOff": "0,1,2,3,4,5,6,7"
193    },
194    {
195        "PublicDescription": "Reference cycles when the at least one thread on the physical core is unhalted (counts at 100 MHz rate).",
196        "EventCode": "0x3C",
197        "Counter": "0,1,2,3",
198        "UMask": "0x1",
199        "AnyThread": "1",
200        "EventName": "CPU_CLK_THREAD_UNHALTED.REF_XCLK_ANY",
201        "SampleAfterValue": "2000003",
202        "BriefDescription": "Reference cycles when the at least one thread on the physical core is unhalted (counts at 100 MHz rate)",
203        "CounterHTOff": "0,1,2,3,4,5,6,7"
204    },
205    {
206        "PublicDescription": "Reference cycles when the thread is unhalted. (counts at 100 MHz rate)",
207        "EventCode": "0x3C",
208        "Counter": "0,1,2,3",
209        "UMask": "0x1",
210        "EventName": "CPU_CLK_UNHALTED.REF_XCLK",
211        "SampleAfterValue": "2000003",
212        "BriefDescription": "Reference cycles when the thread is unhalted (counts at 100 MHz rate)",
213        "CounterHTOff": "0,1,2,3,4,5,6,7"
214    },
215    {
216        "PublicDescription": "Reference cycles when the at least one thread on the physical core is unhalted (counts at 100 MHz rate).",
217        "EventCode": "0x3C",
218        "Counter": "0,1,2,3",
219        "UMask": "0x1",
220        "AnyThread": "1",
221        "EventName": "CPU_CLK_UNHALTED.REF_XCLK_ANY",
222        "SampleAfterValue": "2000003",
223        "BriefDescription": "Reference cycles when the at least one thread on the physical core is unhalted (counts at 100 MHz rate)",
224        "CounterHTOff": "0,1,2,3,4,5,6,7"
225    },
226    {
227        "EventCode": "0x3c",
228        "Counter": "0,1,2,3",
229        "UMask": "0x2",
230        "EventName": "CPU_CLK_THREAD_UNHALTED.ONE_THREAD_ACTIVE",
231        "SampleAfterValue": "2000003",
232        "BriefDescription": "Count XClk pulses when this thread is unhalted and the other thread is halted.",
233        "CounterHTOff": "0,1,2,3"
234    },
235    {
236        "EventCode": "0x3C",
237        "Counter": "0,1,2,3",
238        "UMask": "0x2",
239        "EventName": "CPU_CLK_UNHALTED.ONE_THREAD_ACTIVE",
240        "SampleAfterValue": "2000003",
241        "BriefDescription": "Count XClk pulses when this thread is unhalted and the other thread is halted.",
242        "CounterHTOff": "0,1,2,3,4,5,6,7"
243    },
244    {
245        "PublicDescription": "Non-SW-prefetch load dispatches that hit fill buffer allocated for S/W prefetch.",
246        "EventCode": "0x4c",
247        "Counter": "0,1,2,3",
248        "UMask": "0x1",
249        "EventName": "LOAD_HIT_PRE.SW_PF",
250        "SampleAfterValue": "100003",
251        "BriefDescription": "Not software-prefetch load dispatches that hit FB allocated for software prefetch",
252        "CounterHTOff": "0,1,2,3,4,5,6,7"
253    },
254    {
255        "PublicDescription": "Non-SW-prefetch load dispatches that hit fill buffer allocated for H/W prefetch.",
256        "EventCode": "0x4c",
257        "Counter": "0,1,2,3",
258        "UMask": "0x2",
259        "EventName": "LOAD_HIT_PRE.HW_PF",
260        "SampleAfterValue": "100003",
261        "BriefDescription": "Not software-prefetch load dispatches that hit FB allocated for hardware prefetch",
262        "CounterHTOff": "0,1,2,3,4,5,6,7"
263    },
264    {
265        "PublicDescription": "Number of integer move elimination candidate uops that were eliminated.",
266        "EventCode": "0x58",
267        "Counter": "0,1,2,3",
268        "UMask": "0x1",
269        "EventName": "MOVE_ELIMINATION.INT_ELIMINATED",
270        "SampleAfterValue": "1000003",
271        "BriefDescription": "Number of integer Move Elimination candidate uops that were eliminated.",
272        "CounterHTOff": "0,1,2,3,4,5,6,7"
273    },
274    {
275        "PublicDescription": "Number of SIMD move elimination candidate uops that were eliminated.",
276        "EventCode": "0x58",
277        "Counter": "0,1,2,3",
278        "UMask": "0x2",
279        "EventName": "MOVE_ELIMINATION.SIMD_ELIMINATED",
280        "SampleAfterValue": "1000003",
281        "BriefDescription": "Number of SIMD Move Elimination candidate uops that were eliminated.",
282        "CounterHTOff": "0,1,2,3,4,5,6,7"
283    },
284    {
285        "PublicDescription": "Number of integer move elimination candidate uops that were not eliminated.",
286        "EventCode": "0x58",
287        "Counter": "0,1,2,3",
288        "UMask": "0x4",
289        "EventName": "MOVE_ELIMINATION.INT_NOT_ELIMINATED",
290        "SampleAfterValue": "1000003",
291        "BriefDescription": "Number of integer Move Elimination candidate uops that were not eliminated.",
292        "CounterHTOff": "0,1,2,3,4,5,6,7"
293    },
294    {
295        "PublicDescription": "Number of SIMD move elimination candidate uops that were not eliminated.",
296        "EventCode": "0x58",
297        "Counter": "0,1,2,3",
298        "UMask": "0x8",
299        "EventName": "MOVE_ELIMINATION.SIMD_NOT_ELIMINATED",
300        "SampleAfterValue": "1000003",
301        "BriefDescription": "Number of SIMD Move Elimination candidate uops that were not eliminated.",
302        "CounterHTOff": "0,1,2,3,4,5,6,7"
303    },
304    {
305        "PublicDescription": "This event counts cycles when the Reservation Station ( RS ) is empty for the thread. The RS is a structure that buffers allocated micro-ops from the Front-end. If there are many cycles when the RS is empty, it may represent an underflow of instructions delivered from the Front-end.",
306        "EventCode": "0x5E",
307        "Counter": "0,1,2,3",
308        "UMask": "0x1",
309        "EventName": "RS_EVENTS.EMPTY_CYCLES",
310        "SampleAfterValue": "2000003",
311        "BriefDescription": "Cycles when Reservation Station (RS) is empty for the thread",
312        "CounterHTOff": "0,1,2,3,4,5,6,7"
313    },
314    {
315        "EventCode": "0x5E",
316        "Invert": "1",
317        "Counter": "0,1,2,3",
318        "UMask": "0x1",
319        "EdgeDetect": "1",
320        "EventName": "RS_EVENTS.EMPTY_END",
321        "SampleAfterValue": "200003",
322        "BriefDescription": "Counts end of periods where the Reservation Station (RS) was empty. Could be useful to precisely locate Frontend Latency Bound issues.",
323        "CounterMask": "1",
324        "CounterHTOff": "0,1,2,3,4,5,6,7"
325    },
326    {
327        "PublicDescription": "This event counts cycles where the decoder is stalled on an instruction with a length changing prefix (LCP).",
328        "EventCode": "0x87",
329        "Counter": "0,1,2,3",
330        "UMask": "0x1",
331        "EventName": "ILD_STALL.LCP",
332        "SampleAfterValue": "2000003",
333        "BriefDescription": "Stalls caused by changing prefix length of the instruction.",
334        "CounterHTOff": "0,1,2,3,4,5,6,7"
335    },
336    {
337        "PublicDescription": "Stall cycles due to IQ is full.",
338        "EventCode": "0x87",
339        "Counter": "0,1,2,3",
340        "UMask": "0x4",
341        "EventName": "ILD_STALL.IQ_FULL",
342        "SampleAfterValue": "2000003",
343        "BriefDescription": "Stall cycles because IQ is full",
344        "CounterHTOff": "0,1,2,3,4,5,6,7"
345    },
346    {
347        "EventCode": "0x88",
348        "Counter": "0,1,2,3",
349        "UMask": "0x41",
350        "EventName": "BR_INST_EXEC.NONTAKEN_CONDITIONAL",
351        "SampleAfterValue": "200003",
352        "BriefDescription": "Not taken macro-conditional branches.",
353        "CounterHTOff": "0,1,2,3,4,5,6,7"
354    },
355    {
356        "EventCode": "0x88",
357        "Counter": "0,1,2,3",
358        "UMask": "0x81",
359        "EventName": "BR_INST_EXEC.TAKEN_CONDITIONAL",
360        "SampleAfterValue": "200003",
361        "BriefDescription": "Taken speculative and retired macro-conditional branches.",
362        "CounterHTOff": "0,1,2,3,4,5,6,7"
363    },
364    {
365        "EventCode": "0x88",
366        "Counter": "0,1,2,3",
367        "UMask": "0x82",
368        "EventName": "BR_INST_EXEC.TAKEN_DIRECT_JUMP",
369        "SampleAfterValue": "200003",
370        "BriefDescription": "Taken speculative and retired macro-conditional branch instructions excluding calls and indirects.",
371        "CounterHTOff": "0,1,2,3,4,5,6,7"
372    },
373    {
374        "EventCode": "0x88",
375        "Counter": "0,1,2,3",
376        "UMask": "0x84",
377        "EventName": "BR_INST_EXEC.TAKEN_INDIRECT_JUMP_NON_CALL_RET",
378        "SampleAfterValue": "200003",
379        "BriefDescription": "Taken speculative and retired indirect branches excluding calls and returns.",
380        "CounterHTOff": "0,1,2,3,4,5,6,7"
381    },
382    {
383        "EventCode": "0x88",
384        "Counter": "0,1,2,3",
385        "UMask": "0x88",
386        "EventName": "BR_INST_EXEC.TAKEN_INDIRECT_NEAR_RETURN",
387        "SampleAfterValue": "200003",
388        "BriefDescription": "Taken speculative and retired indirect branches with return mnemonic.",
389        "CounterHTOff": "0,1,2,3,4,5,6,7"
390    },
391    {
392        "EventCode": "0x88",
393        "Counter": "0,1,2,3",
394        "UMask": "0x90",
395        "EventName": "BR_INST_EXEC.TAKEN_DIRECT_NEAR_CALL",
396        "SampleAfterValue": "200003",
397        "BriefDescription": "Taken speculative and retired direct near calls.",
398        "CounterHTOff": "0,1,2,3,4,5,6,7"
399    },
400    {
401        "EventCode": "0x88",
402        "Counter": "0,1,2,3",
403        "UMask": "0xa0",
404        "EventName": "BR_INST_EXEC.TAKEN_INDIRECT_NEAR_CALL",
405        "SampleAfterValue": "200003",
406        "BriefDescription": "Taken speculative and retired indirect calls.",
407        "CounterHTOff": "0,1,2,3,4,5,6,7"
408    },
409    {
410        "EventCode": "0x88",
411        "Counter": "0,1,2,3",
412        "UMask": "0xc1",
413        "EventName": "BR_INST_EXEC.ALL_CONDITIONAL",
414        "SampleAfterValue": "200003",
415        "BriefDescription": "Speculative and retired macro-conditional branches.",
416        "CounterHTOff": "0,1,2,3,4,5,6,7"
417    },
418    {
419        "EventCode": "0x88",
420        "Counter": "0,1,2,3",
421        "UMask": "0xc2",
422        "EventName": "BR_INST_EXEC.ALL_DIRECT_JMP",
423        "SampleAfterValue": "200003",
424        "BriefDescription": "Speculative and retired macro-unconditional branches excluding calls and indirects.",
425        "CounterHTOff": "0,1,2,3,4,5,6,7"
426    },
427    {
428        "EventCode": "0x88",
429        "Counter": "0,1,2,3",
430        "UMask": "0xc4",
431        "EventName": "BR_INST_EXEC.ALL_INDIRECT_JUMP_NON_CALL_RET",
432        "SampleAfterValue": "200003",
433        "BriefDescription": "Speculative and retired indirect branches excluding calls and returns.",
434        "CounterHTOff": "0,1,2,3,4,5,6,7"
435    },
436    {
437        "EventCode": "0x88",
438        "Counter": "0,1,2,3",
439        "UMask": "0xc8",
440        "EventName": "BR_INST_EXEC.ALL_INDIRECT_NEAR_RETURN",
441        "SampleAfterValue": "200003",
442        "BriefDescription": "Speculative and retired indirect return branches.",
443        "CounterHTOff": "0,1,2,3,4,5,6,7"
444    },
445    {
446        "EventCode": "0x88",
447        "Counter": "0,1,2,3",
448        "UMask": "0xd0",
449        "EventName": "BR_INST_EXEC.ALL_DIRECT_NEAR_CALL",
450        "SampleAfterValue": "200003",
451        "BriefDescription": "Speculative and retired direct near calls.",
452        "CounterHTOff": "0,1,2,3,4,5,6,7"
453    },
454    {
455        "PublicDescription": "Counts all near executed branches (not necessarily retired).",
456        "EventCode": "0x88",
457        "Counter": "0,1,2,3",
458        "UMask": "0xff",
459        "EventName": "BR_INST_EXEC.ALL_BRANCHES",
460        "SampleAfterValue": "200003",
461        "BriefDescription": "Speculative and retired  branches",
462        "CounterHTOff": "0,1,2,3,4,5,6,7"
463    },
464    {
465        "EventCode": "0x89",
466        "Counter": "0,1,2,3",
467        "UMask": "0x41",
468        "EventName": "BR_MISP_EXEC.NONTAKEN_CONDITIONAL",
469        "SampleAfterValue": "200003",
470        "BriefDescription": "Not taken speculative and retired mispredicted macro conditional branches.",
471        "CounterHTOff": "0,1,2,3,4,5,6,7"
472    },
473    {
474        "EventCode": "0x89",
475        "Counter": "0,1,2,3",
476        "UMask": "0x81",
477        "EventName": "BR_MISP_EXEC.TAKEN_CONDITIONAL",
478        "SampleAfterValue": "200003",
479        "BriefDescription": "Taken speculative and retired mispredicted macro conditional branches.",
480        "CounterHTOff": "0,1,2,3,4,5,6,7"
481    },
482    {
483        "EventCode": "0x89",
484        "Counter": "0,1,2,3",
485        "UMask": "0x84",
486        "EventName": "BR_MISP_EXEC.TAKEN_INDIRECT_JUMP_NON_CALL_RET",
487        "SampleAfterValue": "200003",
488        "BriefDescription": "Taken speculative and retired mispredicted indirect branches excluding calls and returns.",
489        "CounterHTOff": "0,1,2,3,4,5,6,7"
490    },
491    {
492        "EventCode": "0x89",
493        "Counter": "0,1,2,3",
494        "UMask": "0x88",
495        "EventName": "BR_MISP_EXEC.TAKEN_RETURN_NEAR",
496        "SampleAfterValue": "200003",
497        "BriefDescription": "Taken speculative and retired mispredicted indirect branches with return mnemonic.",
498        "CounterHTOff": "0,1,2,3,4,5,6,7"
499    },
500    {
501        "EventCode": "0x89",
502        "Counter": "0,1,2,3",
503        "UMask": "0xa0",
504        "EventName": "BR_MISP_EXEC.TAKEN_INDIRECT_NEAR_CALL",
505        "SampleAfterValue": "200003",
506        "BriefDescription": "Taken speculative and retired mispredicted indirect calls.",
507        "CounterHTOff": "0,1,2,3,4,5,6,7"
508    },
509    {
510        "EventCode": "0x89",
511        "Counter": "0,1,2,3",
512        "UMask": "0xc1",
513        "EventName": "BR_MISP_EXEC.ALL_CONDITIONAL",
514        "SampleAfterValue": "200003",
515        "BriefDescription": "Speculative and retired mispredicted macro conditional branches.",
516        "CounterHTOff": "0,1,2,3,4,5,6,7"
517    },
518    {
519        "EventCode": "0x89",
520        "Counter": "0,1,2,3",
521        "UMask": "0xc4",
522        "EventName": "BR_MISP_EXEC.ALL_INDIRECT_JUMP_NON_CALL_RET",
523        "SampleAfterValue": "200003",
524        "BriefDescription": "Mispredicted indirect branches excluding calls and returns.",
525        "CounterHTOff": "0,1,2,3,4,5,6,7"
526    },
527    {
528        "PublicDescription": "Counts all near executed branches (not necessarily retired).",
529        "EventCode": "0x89",
530        "Counter": "0,1,2,3",
531        "UMask": "0xff",
532        "EventName": "BR_MISP_EXEC.ALL_BRANCHES",
533        "SampleAfterValue": "200003",
534        "BriefDescription": "Speculative and retired mispredicted macro conditional branches",
535        "CounterHTOff": "0,1,2,3,4,5,6,7"
536    },
537    {
538        "PublicDescription": "Cycles which a uop is dispatched on port 0 in this thread.",
539        "EventCode": "0xA1",
540        "Counter": "0,1,2,3",
541        "UMask": "0x1",
542        "EventName": "UOPS_EXECUTED_PORT.PORT_0",
543        "SampleAfterValue": "2000003",
544        "BriefDescription": "Cycles per thread when uops are executed in port 0",
545        "CounterHTOff": "0,1,2,3,4,5,6,7"
546    },
547    {
548        "PublicDescription": "Cycles per core when uops are exectuted in port 0.",
549        "EventCode": "0xA1",
550        "Counter": "0,1,2,3",
551        "UMask": "0x1",
552        "AnyThread": "1",
553        "EventName": "UOPS_EXECUTED_PORT.PORT_0_CORE",
554        "SampleAfterValue": "2000003",
555        "BriefDescription": "Cycles per core when uops are executed in port 0.",
556        "CounterHTOff": "0,1,2,3,4,5,6,7"
557    },
558    {
559        "EventCode": "0xA1",
560        "Counter": "0,1,2,3",
561        "UMask": "0x1",
562        "EventName": "UOPS_DISPATCHED_PORT.PORT_0",
563        "SampleAfterValue": "2000003",
564        "BriefDescription": "Cycles per thread when uops are executed in port 0.",
565        "CounterHTOff": "0,1,2,3,4,5,6,7"
566    },
567    {
568        "PublicDescription": "Cycles which a uop is dispatched on port 1 in this thread.",
569        "EventCode": "0xA1",
570        "Counter": "0,1,2,3",
571        "UMask": "0x2",
572        "EventName": "UOPS_EXECUTED_PORT.PORT_1",
573        "SampleAfterValue": "2000003",
574        "BriefDescription": "Cycles per thread when uops are executed in port 1",
575        "CounterHTOff": "0,1,2,3,4,5,6,7"
576    },
577    {
578        "PublicDescription": "Cycles per core when uops are exectuted in port 1.",
579        "EventCode": "0xA1",
580        "Counter": "0,1,2,3",
581        "UMask": "0x2",
582        "AnyThread": "1",
583        "EventName": "UOPS_EXECUTED_PORT.PORT_1_CORE",
584        "SampleAfterValue": "2000003",
585        "BriefDescription": "Cycles per core when uops are executed in port 1.",
586        "CounterHTOff": "0,1,2,3,4,5,6,7"
587    },
588    {
589        "EventCode": "0xA1",
590        "Counter": "0,1,2,3",
591        "UMask": "0x2",
592        "EventName": "UOPS_DISPATCHED_PORT.PORT_1",
593        "SampleAfterValue": "2000003",
594        "BriefDescription": "Cycles per thread when uops are executed in port 1.",
595        "CounterHTOff": "0,1,2,3,4,5,6,7"
596    },
597    {
598        "PublicDescription": "Cycles which a uop is dispatched on port 2 in this thread.",
599        "EventCode": "0xA1",
600        "Counter": "0,1,2,3",
601        "UMask": "0x4",
602        "EventName": "UOPS_EXECUTED_PORT.PORT_2",
603        "SampleAfterValue": "2000003",
604        "BriefDescription": "Cycles per thread when uops are executed in port 2",
605        "CounterHTOff": "0,1,2,3,4,5,6,7"
606    },
607    {
608        "EventCode": "0xA1",
609        "Counter": "0,1,2,3",
610        "UMask": "0x4",
611        "AnyThread": "1",
612        "EventName": "UOPS_EXECUTED_PORT.PORT_2_CORE",
613        "SampleAfterValue": "2000003",
614        "BriefDescription": "Cycles per core when uops are dispatched to port 2.",
615        "CounterHTOff": "0,1,2,3,4,5,6,7"
616    },
617    {
618        "EventCode": "0xA1",
619        "Counter": "0,1,2,3",
620        "UMask": "0x4",
621        "EventName": "UOPS_DISPATCHED_PORT.PORT_2",
622        "SampleAfterValue": "2000003",
623        "BriefDescription": "Cycles per thread when uops are executed in port 2.",
624        "CounterHTOff": "0,1,2,3,4,5,6,7"
625    },
626    {
627        "PublicDescription": "Cycles which a uop is dispatched on port 3 in this thread.",
628        "EventCode": "0xA1",
629        "Counter": "0,1,2,3",
630        "UMask": "0x8",
631        "EventName": "UOPS_EXECUTED_PORT.PORT_3",
632        "SampleAfterValue": "2000003",
633        "BriefDescription": "Cycles per thread when uops are executed in port 3",
634        "CounterHTOff": "0,1,2,3,4,5,6,7"
635    },
636    {
637        "EventCode": "0xA1",
638        "Counter": "0,1,2,3",
639        "UMask": "0x8",
640        "AnyThread": "1",
641        "EventName": "UOPS_EXECUTED_PORT.PORT_3_CORE",
642        "SampleAfterValue": "2000003",
643        "BriefDescription": "Cycles per core when uops are dispatched to port 3.",
644        "CounterHTOff": "0,1,2,3,4,5,6,7"
645    },
646    {
647        "EventCode": "0xA1",
648        "Counter": "0,1,2,3",
649        "UMask": "0x8",
650        "EventName": "UOPS_DISPATCHED_PORT.PORT_3",
651        "SampleAfterValue": "2000003",
652        "BriefDescription": "Cycles per thread when uops are executed in port 3.",
653        "CounterHTOff": "0,1,2,3,4,5,6,7"
654    },
655    {
656        "PublicDescription": "Cycles which a uop is dispatched on port 4 in this thread.",
657        "EventCode": "0xA1",
658        "Counter": "0,1,2,3",
659        "UMask": "0x10",
660        "EventName": "UOPS_EXECUTED_PORT.PORT_4",
661        "SampleAfterValue": "2000003",
662        "BriefDescription": "Cycles per thread when uops are executed in port 4",
663        "CounterHTOff": "0,1,2,3,4,5,6,7"
664    },
665    {
666        "PublicDescription": "Cycles per core when uops are exectuted in port 4.",
667        "EventCode": "0xA1",
668        "Counter": "0,1,2,3",
669        "UMask": "0x10",
670        "AnyThread": "1",
671        "EventName": "UOPS_EXECUTED_PORT.PORT_4_CORE",
672        "SampleAfterValue": "2000003",
673        "BriefDescription": "Cycles per core when uops are executed in port 4.",
674        "CounterHTOff": "0,1,2,3,4,5,6,7"
675    },
676    {
677        "EventCode": "0xA1",
678        "Counter": "0,1,2,3",
679        "UMask": "0x10",
680        "EventName": "UOPS_DISPATCHED_PORT.PORT_4",
681        "SampleAfterValue": "2000003",
682        "BriefDescription": "Cycles per thread when uops are executed in port 4.",
683        "CounterHTOff": "0,1,2,3,4,5,6,7"
684    },
685    {
686        "PublicDescription": "Cycles which a uop is dispatched on port 5 in this thread.",
687        "EventCode": "0xA1",
688        "Counter": "0,1,2,3",
689        "UMask": "0x20",
690        "EventName": "UOPS_EXECUTED_PORT.PORT_5",
691        "SampleAfterValue": "2000003",
692        "BriefDescription": "Cycles per thread when uops are executed in port 5",
693        "CounterHTOff": "0,1,2,3,4,5,6,7"
694    },
695    {
696        "PublicDescription": "Cycles per core when uops are exectuted in port 5.",
697        "EventCode": "0xA1",
698        "Counter": "0,1,2,3",
699        "UMask": "0x20",
700        "AnyThread": "1",
701        "EventName": "UOPS_EXECUTED_PORT.PORT_5_CORE",
702        "SampleAfterValue": "2000003",
703        "BriefDescription": "Cycles per core when uops are executed in port 5.",
704        "CounterHTOff": "0,1,2,3,4,5,6,7"
705    },
706    {
707        "EventCode": "0xA1",
708        "Counter": "0,1,2,3",
709        "UMask": "0x20",
710        "EventName": "UOPS_DISPATCHED_PORT.PORT_5",
711        "SampleAfterValue": "2000003",
712        "BriefDescription": "Cycles per thread when uops are executed in port 5.",
713        "CounterHTOff": "0,1,2,3,4,5,6,7"
714    },
715    {
716        "PublicDescription": "Cycles which a uop is dispatched on port 6 in this thread.",
717        "EventCode": "0xA1",
718        "Counter": "0,1,2,3",
719        "UMask": "0x40",
720        "EventName": "UOPS_EXECUTED_PORT.PORT_6",
721        "SampleAfterValue": "2000003",
722        "BriefDescription": "Cycles per thread when uops are executed in port 6",
723        "CounterHTOff": "0,1,2,3,4,5,6,7"
724    },
725    {
726        "PublicDescription": "Cycles per core when uops are exectuted in port 6.",
727        "EventCode": "0xA1",
728        "Counter": "0,1,2,3",
729        "UMask": "0x40",
730        "AnyThread": "1",
731        "EventName": "UOPS_EXECUTED_PORT.PORT_6_CORE",
732        "SampleAfterValue": "2000003",
733        "BriefDescription": "Cycles per core when uops are executed in port 6.",
734        "CounterHTOff": "0,1,2,3,4,5,6,7"
735    },
736    {
737        "EventCode": "0xA1",
738        "Counter": "0,1,2,3",
739        "UMask": "0x40",
740        "EventName": "UOPS_DISPATCHED_PORT.PORT_6",
741        "SampleAfterValue": "2000003",
742        "BriefDescription": "Cycles per thread when uops are executed in port 6.",
743        "CounterHTOff": "0,1,2,3,4,5,6,7"
744    },
745    {
746        "PublicDescription": "Cycles which a uop is dispatched on port 7 in this thread.",
747        "EventCode": "0xA1",
748        "Counter": "0,1,2,3",
749        "UMask": "0x80",
750        "EventName": "UOPS_EXECUTED_PORT.PORT_7",
751        "SampleAfterValue": "2000003",
752        "BriefDescription": "Cycles per thread when uops are executed in port 7",
753        "CounterHTOff": "0,1,2,3,4,5,6,7"
754    },
755    {
756        "EventCode": "0xA1",
757        "Counter": "0,1,2,3",
758        "UMask": "0x80",
759        "AnyThread": "1",
760        "EventName": "UOPS_EXECUTED_PORT.PORT_7_CORE",
761        "SampleAfterValue": "2000003",
762        "BriefDescription": "Cycles per core when uops are dispatched to port 7.",
763        "CounterHTOff": "0,1,2,3,4,5,6,7"
764    },
765    {
766        "EventCode": "0xA1",
767        "Counter": "0,1,2,3",
768        "UMask": "0x80",
769        "EventName": "UOPS_DISPATCHED_PORT.PORT_7",
770        "SampleAfterValue": "2000003",
771        "BriefDescription": "Cycles per thread when uops are executed in port 7.",
772        "CounterHTOff": "0,1,2,3,4,5,6,7"
773    },
774    {
775        "PublicDescription": "Cycles allocation is stalled due to resource related reason.",
776        "EventCode": "0xA2",
777        "Counter": "0,1,2,3",
778        "UMask": "0x1",
779        "Errata": "HSD135",
780        "EventName": "RESOURCE_STALLS.ANY",
781        "SampleAfterValue": "2000003",
782        "BriefDescription": "Resource-related stall cycles",
783        "CounterHTOff": "0,1,2,3,4,5,6,7"
784    },
785    {
786        "EventCode": "0xA2",
787        "Counter": "0,1,2,3",
788        "UMask": "0x4",
789        "EventName": "RESOURCE_STALLS.RS",
790        "SampleAfterValue": "2000003",
791        "BriefDescription": "Cycles stalled due to no eligible RS entry available.",
792        "CounterHTOff": "0,1,2,3,4,5,6,7"
793    },
794    {
795        "PublicDescription": "This event counts cycles during which no instructions were allocated because no Store Buffers (SB) were available.",
796        "EventCode": "0xA2",
797        "Counter": "0,1,2,3",
798        "UMask": "0x8",
799        "EventName": "RESOURCE_STALLS.SB",
800        "SampleAfterValue": "2000003",
801        "BriefDescription": "Cycles stalled due to no store buffers available. (not including draining form sync).",
802        "CounterHTOff": "0,1,2,3,4,5,6,7"
803    },
804    {
805        "EventCode": "0xA2",
806        "Counter": "0,1,2,3",
807        "UMask": "0x10",
808        "EventName": "RESOURCE_STALLS.ROB",
809        "SampleAfterValue": "2000003",
810        "BriefDescription": "Cycles stalled due to re-order buffer full.",
811        "CounterHTOff": "0,1,2,3,4,5,6,7"
812    },
813    {
814        "PublicDescription": "Cycles with pending L2 miss loads. Set Cmask=2 to count cycle.",
815        "EventCode": "0xA3",
816        "Counter": "0,1,2,3",
817        "UMask": "0x1",
818        "Errata": "HSD78",
819        "EventName": "CYCLE_ACTIVITY.CYCLES_L2_PENDING",
820        "SampleAfterValue": "2000003",
821        "BriefDescription": "Cycles with pending L2 cache miss loads.",
822        "CounterMask": "1",
823        "CounterHTOff": "0,1,2,3,4,5,6,7"
824    },
825    {
826        "PublicDescription": "Cycles with pending memory loads. Set Cmask=2 to count cycle.",
827        "EventCode": "0xA3",
828        "Counter": "0,1,2,3",
829        "UMask": "0x2",
830        "EventName": "CYCLE_ACTIVITY.CYCLES_LDM_PENDING",
831        "SampleAfterValue": "2000003",
832        "BriefDescription": "Cycles with pending memory loads.",
833        "CounterMask": "2",
834        "CounterHTOff": "0,1,2,3"
835    },
836    {
837        "PublicDescription": "This event counts cycles during which no instructions were executed in the execution stage of the pipeline.",
838        "EventCode": "0xA3",
839        "Counter": "0,1,2,3",
840        "UMask": "0x4",
841        "EventName": "CYCLE_ACTIVITY.CYCLES_NO_EXECUTE",
842        "SampleAfterValue": "2000003",
843        "BriefDescription": "This event increments by 1 for every cycle where there was no execute for this thread.",
844        "CounterMask": "4",
845        "CounterHTOff": "0,1,2,3"
846    },
847    {
848        "PublicDescription": "Number of loads missed L2.",
849        "EventCode": "0xA3",
850        "Counter": "0,1,2,3",
851        "UMask": "0x5",
852        "EventName": "CYCLE_ACTIVITY.STALLS_L2_PENDING",
853        "SampleAfterValue": "2000003",
854        "BriefDescription": "Execution stalls due to L2 cache misses.",
855        "CounterMask": "5",
856        "CounterHTOff": "0,1,2,3"
857    },
858    {
859        "PublicDescription": "This event counts cycles during which no instructions were executed in the execution stage of the pipeline and there were memory instructions pending (waiting for data).",
860        "EventCode": "0xA3",
861        "Counter": "0,1,2,3",
862        "UMask": "0x6",
863        "EventName": "CYCLE_ACTIVITY.STALLS_LDM_PENDING",
864        "SampleAfterValue": "2000003",
865        "BriefDescription": "Execution stalls due to memory subsystem.",
866        "CounterMask": "6",
867        "CounterHTOff": "0,1,2,3"
868    },
869    {
870        "PublicDescription": "Cycles with pending L1 data cache miss loads. Set Cmask=8 to count cycle.",
871        "EventCode": "0xA3",
872        "Counter": "2",
873        "UMask": "0x8",
874        "EventName": "CYCLE_ACTIVITY.CYCLES_L1D_PENDING",
875        "SampleAfterValue": "2000003",
876        "BriefDescription": "Cycles with pending L1 cache miss loads.",
877        "CounterMask": "8",
878        "CounterHTOff": "2"
879    },
880    {
881        "PublicDescription": "Execution stalls due to L1 data cache miss loads. Set Cmask=0CH.",
882        "EventCode": "0xA3",
883        "Counter": "2",
884        "UMask": "0xc",
885        "EventName": "CYCLE_ACTIVITY.STALLS_L1D_PENDING",
886        "SampleAfterValue": "2000003",
887        "BriefDescription": "Execution stalls due to L1 data cache misses",
888        "CounterMask": "12",
889        "CounterHTOff": "2"
890    },
891    {
892        "PublicDescription": "Number of uops delivered by the LSD.",
893        "EventCode": "0xa8",
894        "Counter": "0,1,2,3",
895        "UMask": "0x1",
896        "EventName": "LSD.UOPS",
897        "SampleAfterValue": "2000003",
898        "BriefDescription": "Number of Uops delivered by the LSD.",
899        "CounterHTOff": "0,1,2,3,4,5,6,7"
900    },
901    {
902        "EventCode": "0xA8",
903        "Counter": "0,1,2,3",
904        "UMask": "0x1",
905        "EventName": "LSD.CYCLES_ACTIVE",
906        "SampleAfterValue": "2000003",
907        "BriefDescription": "Cycles Uops delivered by the LSD, but didn't come from the decoder.",
908        "CounterMask": "1",
909        "CounterHTOff": "0,1,2,3,4,5,6,7"
910    },
911    {
912        "EventCode": "0xA8",
913        "Counter": "0,1,2,3",
914        "UMask": "0x1",
915        "EventName": "LSD.CYCLES_4_UOPS",
916        "SampleAfterValue": "2000003",
917        "BriefDescription": "Cycles 4 Uops delivered by the LSD, but didn't come from the decoder.",
918        "CounterMask": "4",
919        "CounterHTOff": "0,1,2,3,4,5,6,7"
920    },
921    {
922        "EventCode": "0xB1",
923        "Invert": "1",
924        "Counter": "0,1,2,3",
925        "UMask": "0x1",
926        "Errata": "HSD144, HSD30, HSM31",
927        "EventName": "UOPS_EXECUTED.STALL_CYCLES",
928        "SampleAfterValue": "2000003",
929        "BriefDescription": "Counts number of cycles no uops were dispatched to be executed on this thread.",
930        "CounterMask": "1",
931        "CounterHTOff": "0,1,2,3"
932    },
933    {
934        "PublicDescription": "This events counts the cycles where at least one uop was executed. It is counted per thread.",
935        "EventCode": "0xB1",
936        "Counter": "0,1,2,3",
937        "UMask": "0x1",
938        "Errata": "HSD144, HSD30, HSM31",
939        "EventName": "UOPS_EXECUTED.CYCLES_GE_1_UOP_EXEC",
940        "SampleAfterValue": "2000003",
941        "BriefDescription": "Cycles where at least 1 uop was executed per-thread",
942        "CounterMask": "1",
943        "CounterHTOff": "0,1,2,3"
944    },
945    {
946        "PublicDescription": "This events counts the cycles where at least two uop were executed. It is counted per thread.",
947        "EventCode": "0xB1",
948        "Counter": "0,1,2,3",
949        "UMask": "0x1",
950        "Errata": "HSD144, HSD30, HSM31",
951        "EventName": "UOPS_EXECUTED.CYCLES_GE_2_UOPS_EXEC",
952        "SampleAfterValue": "2000003",
953        "BriefDescription": "Cycles where at least 2 uops were executed per-thread",
954        "CounterMask": "2",
955        "CounterHTOff": "0,1,2,3"
956    },
957    {
958        "PublicDescription": "This events counts the cycles where at least three uop were executed. It is counted per thread.",
959        "EventCode": "0xB1",
960        "Counter": "0,1,2,3",
961        "UMask": "0x1",
962        "Errata": "HSD144, HSD30, HSM31",
963        "EventName": "UOPS_EXECUTED.CYCLES_GE_3_UOPS_EXEC",
964        "SampleAfterValue": "2000003",
965        "BriefDescription": "Cycles where at least 3 uops were executed per-thread",
966        "CounterMask": "3",
967        "CounterHTOff": "0,1,2,3"
968    },
969    {
970        "EventCode": "0xB1",
971        "Counter": "0,1,2,3",
972        "UMask": "0x1",
973        "Errata": "HSD144, HSD30, HSM31",
974        "EventName": "UOPS_EXECUTED.CYCLES_GE_4_UOPS_EXEC",
975        "SampleAfterValue": "2000003",
976        "BriefDescription": "Cycles where at least 4 uops were executed per-thread.",
977        "CounterMask": "4",
978        "CounterHTOff": "0,1,2,3"
979    },
980    {
981        "PublicDescription": "Counts total number of uops to be executed per-core each cycle.",
982        "EventCode": "0xB1",
983        "Counter": "0,1,2,3",
984        "UMask": "0x2",
985        "Errata": "HSD30, HSM31",
986        "EventName": "UOPS_EXECUTED.CORE",
987        "SampleAfterValue": "2000003",
988        "BriefDescription": "Number of uops executed on the core.",
989        "CounterHTOff": "0,1,2,3,4,5,6,7"
990    },
991    {
992        "EventCode": "0xb1",
993        "Counter": "0,1,2,3",
994        "UMask": "0x2",
995        "Errata": "HSD30, HSM31",
996        "EventName": "UOPS_EXECUTED.CORE_CYCLES_GE_1",
997        "SampleAfterValue": "2000003",
998        "BriefDescription": "Cycles at least 1 micro-op is executed from any thread on physical core.",
999        "CounterMask": "1",
1000        "CounterHTOff": "0,1,2,3,4,5,6,7"
1001    },
1002    {
1003        "EventCode": "0xb1",
1004        "Counter": "0,1,2,3",
1005        "UMask": "0x2",
1006        "Errata": "HSD30, HSM31",
1007        "EventName": "UOPS_EXECUTED.CORE_CYCLES_GE_2",
1008        "SampleAfterValue": "2000003",
1009        "BriefDescription": "Cycles at least 2 micro-op is executed from any thread on physical core.",
1010        "CounterMask": "2",
1011        "CounterHTOff": "0,1,2,3,4,5,6,7"
1012    },
1013    {
1014        "EventCode": "0xb1",
1015        "Counter": "0,1,2,3",
1016        "UMask": "0x2",
1017        "Errata": "HSD30, HSM31",
1018        "EventName": "UOPS_EXECUTED.CORE_CYCLES_GE_3",
1019        "SampleAfterValue": "2000003",
1020        "BriefDescription": "Cycles at least 3 micro-op is executed from any thread on physical core.",
1021        "CounterMask": "3",
1022        "CounterHTOff": "0,1,2,3,4,5,6,7"
1023    },
1024    {
1025        "EventCode": "0xb1",
1026        "Counter": "0,1,2,3",
1027        "UMask": "0x2",
1028        "Errata": "HSD30, HSM31",
1029        "EventName": "UOPS_EXECUTED.CORE_CYCLES_GE_4",
1030        "SampleAfterValue": "2000003",
1031        "BriefDescription": "Cycles at least 4 micro-op is executed from any thread on physical core.",
1032        "CounterMask": "4",
1033        "CounterHTOff": "0,1,2,3,4,5,6,7"
1034    },
1035    {
1036        "EventCode": "0xb1",
1037        "Invert": "1",
1038        "Counter": "0,1,2,3",
1039        "UMask": "0x2",
1040        "Errata": "HSD30, HSM31",
1041        "EventName": "UOPS_EXECUTED.CORE_CYCLES_NONE",
1042        "SampleAfterValue": "2000003",
1043        "BriefDescription": "Cycles with no micro-ops executed from any thread on physical core.",
1044        "CounterHTOff": "0,1,2,3,4,5,6,7"
1045    },
1046    {
1047        "PublicDescription": "Number of instructions at retirement.",
1048        "EventCode": "0xC0",
1049        "Counter": "0,1,2,3",
1050        "UMask": "0x0",
1051        "Errata": "HSD11, HSD140",
1052        "EventName": "INST_RETIRED.ANY_P",
1053        "SampleAfterValue": "2000003",
1054        "BriefDescription": "Number of instructions retired. General Counter   - architectural event",
1055        "CounterHTOff": "0,1,2,3,4,5,6,7"
1056    },
1057    {
1058        "PEBS": "2",
1059        "PublicDescription": "Precise instruction retired event with HW to reduce effect of PEBS shadow in IP distribution.",
1060        "EventCode": "0xC0",
1061        "Counter": "1",
1062        "UMask": "0x1",
1063        "Errata": "HSD140",
1064        "EventName": "INST_RETIRED.PREC_DIST",
1065        "SampleAfterValue": "2000003",
1066        "BriefDescription": "Precise instruction retired event with HW to reduce effect of PEBS shadow in IP distribution",
1067        "CounterHTOff": "1"
1068    },
1069    {
1070        "PEBS": "1",
1071        "PublicDescription": "This is a precise version (that is, uses PEBS) of the event that counts FP operations retired. For X87 FP operations that have no exceptions counting also includes flows that have several X87, or flows that use X87 uops in the exception handling.",
1072        "EventCode": "0xC0",
1073        "Counter": "0,1,2,3",
1074        "UMask": "0x2",
1075        "EventName": "INST_RETIRED.X87",
1076        "SampleAfterValue": "2000003",
1077        "BriefDescription": "FP operations retired. X87 FP operations that have no exceptions: Counts also flows that have several X87 or flows that use X87 uops in the exception handling.",
1078        "CounterHTOff": "0,1,2,3,4,5,6,7"
1079    },
1080    {
1081        "PEBS": "1",
1082        "PublicDescription": "",
1083        "EventCode": "0xC1",
1084        "Counter": "0,1,2,3",
1085        "UMask": "0x40",
1086        "EventName": "OTHER_ASSISTS.ANY_WB_ASSIST",
1087        "SampleAfterValue": "100003",
1088        "CounterHTOff": "0,1,2,3,4,5,6,7"
1089    },
1090    {
1091        "PEBS": "1",
1092        "EventCode": "0xC2",
1093        "Counter": "0,1,2,3",
1094        "UMask": "0x1",
1095        "EventName": "UOPS_RETIRED.ALL",
1096        "SampleAfterValue": "2000003",
1097        "BriefDescription": "Actually retired uops.",
1098        "CounterHTOff": "0,1,2,3,4,5,6,7",
1099        "Data_LA": "1"
1100    },
1101    {
1102        "PEBS": "1",
1103        "PublicDescription": "",
1104        "EventCode": "0xC2",
1105        "Invert": "1",
1106        "Counter": "0,1,2,3",
1107        "UMask": "0x1",
1108        "EventName": "UOPS_RETIRED.STALL_CYCLES",
1109        "SampleAfterValue": "2000003",
1110        "BriefDescription": "Cycles no executable uops retired",
1111        "CounterMask": "1",
1112        "CounterHTOff": "0,1,2,3"
1113    },
1114    {
1115        "PEBS": "1",
1116        "PublicDescription": "",
1117        "EventCode": "0xC2",
1118        "Invert": "1",
1119        "Counter": "0,1,2,3",
1120        "UMask": "0x1",
1121        "EventName": "UOPS_RETIRED.TOTAL_CYCLES",
1122        "SampleAfterValue": "2000003",
1123        "BriefDescription": "Number of cycles using always true condition applied to  PEBS uops retired event.",
1124        "CounterMask": "10",
1125        "CounterHTOff": "0,1,2,3"
1126    },
1127    {
1128        "PEBS": "1",
1129        "PublicDescription": "",
1130        "EventCode": "0xC2",
1131        "Invert": "1",
1132        "Counter": "0,1,2,3",
1133        "UMask": "0x1",
1134        "AnyThread": "1",
1135        "EventName": "UOPS_RETIRED.CORE_STALL_CYCLES",
1136        "SampleAfterValue": "2000003",
1137        "BriefDescription": "Cycles no executable uops retired on core",
1138        "CounterMask": "1",
1139        "CounterHTOff": "0,1,2,3"
1140    },
1141    {
1142        "PEBS": "1",
1143        "EventCode": "0xC2",
1144        "Counter": "0,1,2,3",
1145        "UMask": "0x2",
1146        "EventName": "UOPS_RETIRED.RETIRE_SLOTS",
1147        "SampleAfterValue": "2000003",
1148        "BriefDescription": "Retirement slots used.",
1149        "CounterHTOff": "0,1,2,3,4,5,6,7"
1150    },
1151    {
1152        "EventCode": "0xC3",
1153        "Counter": "0,1,2,3",
1154        "UMask": "0x1",
1155        "EventName": "MACHINE_CLEARS.CYCLES",
1156        "SampleAfterValue": "2000003",
1157        "BriefDescription": "Cycles there was a Nuke. Account for both thread-specific and All Thread Nukes.",
1158        "CounterHTOff": "0,1,2,3,4,5,6,7"
1159    },
1160    {
1161        "EventCode": "0xC3",
1162        "Counter": "0,1,2,3",
1163        "UMask": "0x1",
1164        "EdgeDetect": "1",
1165        "EventName": "MACHINE_CLEARS.COUNT",
1166        "SampleAfterValue": "100003",
1167        "BriefDescription": "Number of machine clears (nukes) of any type.",
1168        "CounterMask": "1",
1169        "CounterHTOff": "0,1,2,3,4,5,6,7"
1170    },
1171    {
1172        "PublicDescription": "This event is incremented when self-modifying code (SMC) is detected, which causes a machine clear.  Machine clears can have a significant performance impact if they are happening frequently.",
1173        "EventCode": "0xC3",
1174        "Counter": "0,1,2,3",
1175        "UMask": "0x4",
1176        "EventName": "MACHINE_CLEARS.SMC",
1177        "SampleAfterValue": "100003",
1178        "BriefDescription": "Self-modifying code (SMC) detected.",
1179        "CounterHTOff": "0,1,2,3,4,5,6,7"
1180    },
1181    {
1182        "EventCode": "0xC3",
1183        "Counter": "0,1,2,3",
1184        "UMask": "0x20",
1185        "EventName": "MACHINE_CLEARS.MASKMOV",
1186        "SampleAfterValue": "100003",
1187        "BriefDescription": "This event counts the number of executed Intel AVX masked load operations that refer to an illegal address range with the mask bits set to 0.",
1188        "CounterHTOff": "0,1,2,3,4,5,6,7"
1189    },
1190    {
1191        "PublicDescription": "Branch instructions at retirement.",
1192        "EventCode": "0xC4",
1193        "Counter": "0,1,2,3",
1194        "UMask": "0x0",
1195        "EventName": "BR_INST_RETIRED.ALL_BRANCHES",
1196        "SampleAfterValue": "400009",
1197        "BriefDescription": "All (macro) branch instructions retired.",
1198        "CounterHTOff": "0,1,2,3,4,5,6,7"
1199    },
1200    {
1201        "PEBS": "1",
1202        "EventCode": "0xC4",
1203        "Counter": "0,1,2,3",
1204        "UMask": "0x1",
1205        "EventName": "BR_INST_RETIRED.CONDITIONAL",
1206        "SampleAfterValue": "400009",
1207        "BriefDescription": "Conditional branch instructions retired.",
1208        "CounterHTOff": "0,1,2,3,4,5,6,7"
1209    },
1210    {
1211        "PEBS": "1",
1212        "EventCode": "0xC4",
1213        "Counter": "0,1,2,3",
1214        "UMask": "0x2",
1215        "EventName": "BR_INST_RETIRED.NEAR_CALL",
1216        "SampleAfterValue": "100003",
1217        "BriefDescription": "Direct and indirect near call instructions retired.",
1218        "CounterHTOff": "0,1,2,3,4,5,6,7"
1219    },
1220    {
1221        "PEBS": "1",
1222        "EventCode": "0xC4",
1223        "Counter": "0,1,2,3",
1224        "UMask": "0x2",
1225        "EventName": "BR_INST_RETIRED.NEAR_CALL_R3",
1226        "SampleAfterValue": "100003",
1227        "BriefDescription": "Direct and indirect macro near call instructions retired (captured in ring 3).",
1228        "CounterHTOff": "0,1,2,3,4,5,6,7"
1229    },
1230    {
1231        "PEBS": "2",
1232        "EventCode": "0xC4",
1233        "Counter": "0,1,2,3",
1234        "UMask": "0x4",
1235        "EventName": "BR_INST_RETIRED.ALL_BRANCHES_PEBS",
1236        "SampleAfterValue": "400009",
1237        "BriefDescription": "All (macro) branch instructions retired.",
1238        "CounterHTOff": "0,1,2,3"
1239    },
1240    {
1241        "PEBS": "1",
1242        "EventCode": "0xC4",
1243        "Counter": "0,1,2,3",
1244        "UMask": "0x8",
1245        "EventName": "BR_INST_RETIRED.NEAR_RETURN",
1246        "SampleAfterValue": "100003",
1247        "BriefDescription": "Return instructions retired.",
1248        "CounterHTOff": "0,1,2,3,4,5,6,7"
1249    },
1250    {
1251        "PEBS": "1",
1252        "PublicDescription": "",
1253        "EventCode": "0xC4",
1254        "Counter": "0,1,2,3",
1255        "UMask": "0x10",
1256        "EventName": "BR_INST_RETIRED.NOT_TAKEN",
1257        "SampleAfterValue": "400009",
1258        "BriefDescription": "Counts all not taken macro branch instructions retired.",
1259        "CounterHTOff": "0,1,2,3,4,5,6,7"
1260    },
1261    {
1262        "PEBS": "1",
1263        "EventCode": "0xC4",
1264        "Counter": "0,1,2,3",
1265        "UMask": "0x20",
1266        "EventName": "BR_INST_RETIRED.NEAR_TAKEN",
1267        "SampleAfterValue": "400009",
1268        "BriefDescription": "Taken branch instructions retired.",
1269        "CounterHTOff": "0,1,2,3,4,5,6,7"
1270    },
1271    {
1272        "PEBS": "1",
1273        "PublicDescription": "",
1274        "EventCode": "0xC4",
1275        "Counter": "0,1,2,3",
1276        "UMask": "0x40",
1277        "EventName": "BR_INST_RETIRED.FAR_BRANCH",
1278        "SampleAfterValue": "100003",
1279        "BriefDescription": "Counts the number of far branch instructions retired.",
1280        "CounterHTOff": "0,1,2,3,4,5,6,7"
1281    },
1282    {
1283        "PublicDescription": "Mispredicted branch instructions at retirement.",
1284        "EventCode": "0xC5",
1285        "Counter": "0,1,2,3",
1286        "UMask": "0x0",
1287        "EventName": "BR_MISP_RETIRED.ALL_BRANCHES",
1288        "SampleAfterValue": "400009",
1289        "BriefDescription": "All mispredicted macro branch instructions retired.",
1290        "CounterHTOff": "0,1,2,3,4,5,6,7"
1291    },
1292    {
1293        "PEBS": "1",
1294        "EventCode": "0xC5",
1295        "Counter": "0,1,2,3",
1296        "UMask": "0x1",
1297        "EventName": "BR_MISP_RETIRED.CONDITIONAL",
1298        "SampleAfterValue": "400009",
1299        "BriefDescription": "Mispredicted conditional branch instructions retired.",
1300        "CounterHTOff": "0,1,2,3,4,5,6,7"
1301    },
1302    {
1303        "PEBS": "2",
1304        "PublicDescription": "This event counts all mispredicted branch instructions retired. This is a precise event.",
1305        "EventCode": "0xC5",
1306        "Counter": "0,1,2,3",
1307        "UMask": "0x4",
1308        "EventName": "BR_MISP_RETIRED.ALL_BRANCHES_PEBS",
1309        "SampleAfterValue": "400009",
1310        "BriefDescription": "Mispredicted macro branch instructions retired.",
1311        "CounterHTOff": "0,1,2,3"
1312    },
1313    {
1314        "PEBS": "1",
1315        "EventCode": "0xC5",
1316        "Counter": "0,1,2,3",
1317        "UMask": "0x20",
1318        "EventName": "BR_MISP_RETIRED.NEAR_TAKEN",
1319        "SampleAfterValue": "400009",
1320        "BriefDescription": "number of near branch instructions retired that were mispredicted and taken.",
1321        "CounterHTOff": "0,1,2,3,4,5,6,7"
1322    },
1323    {
1324        "PublicDescription": "Count cases of saving new LBR records by hardware.",
1325        "EventCode": "0xCC",
1326        "Counter": "0,1,2,3",
1327        "UMask": "0x20",
1328        "EventName": "ROB_MISC_EVENTS.LBR_INSERTS",
1329        "SampleAfterValue": "2000003",
1330        "BriefDescription": "Count cases of saving new LBR",
1331        "CounterHTOff": "0,1,2,3,4,5,6,7"
1332    },
1333    {
1334        "PublicDescription": "Number of front end re-steers due to BPU misprediction.",
1335        "EventCode": "0xe6",
1336        "Counter": "0,1,2,3",
1337        "UMask": "0x1f",
1338        "EventName": "BACLEARS.ANY",
1339        "SampleAfterValue": "100003",
1340        "BriefDescription": "Counts the total number when the front end is resteered, mainly when the BPU cannot provide a correct prediction and this is corrected by other branch handling mechanisms at the front end.",
1341        "CounterHTOff": "0,1,2,3,4,5,6,7"
1342    }
1343]