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