1630171d4SAndi Kleen[
2630171d4SAndi Kleen    {
3b5ff7f27SJin Yao        "BriefDescription": "Cycles when divide unit is busy executing divide or square root operations. Accounts for integer and floating-point operations.",
419f2d40cSAndi Kleen        "CounterMask": "1",
5b5ff7f27SJin Yao        "EventCode": "0x14",
6b5ff7f27SJin Yao        "EventName": "ARITH.DIVIDER_ACTIVE",
719f2d40cSAndi Kleen        "SampleAfterValue": "2000003",
8b5ff7f27SJin Yao        "UMask": "0x1"
919f2d40cSAndi Kleen    },
1019f2d40cSAndi Kleen    {
112c72404eSJin Yao        "BriefDescription": "All (macro) branch instructions retired.",
122c72404eSJin Yao        "Errata": "SKL091",
132c72404eSJin Yao        "EventCode": "0xC4",
142c72404eSJin Yao        "EventName": "BR_INST_RETIRED.ALL_BRANCHES",
152c72404eSJin Yao        "PublicDescription": "Counts all (macro) branch instructions retired.",
162c72404eSJin Yao        "SampleAfterValue": "400009"
172c72404eSJin Yao    },
182c72404eSJin Yao    {
192c72404eSJin Yao        "BriefDescription": "All (macro) branch instructions retired.",
202c72404eSJin Yao        "Errata": "SKL091",
212c72404eSJin Yao        "EventCode": "0xC4",
222c72404eSJin Yao        "EventName": "BR_INST_RETIRED.ALL_BRANCHES_PEBS",
232c72404eSJin Yao        "PEBS": "2",
242c72404eSJin Yao        "PublicDescription": "This is a precise version of BR_INST_RETIRED.ALL_BRANCHES that counts all (macro) branch instructions retired.",
252c72404eSJin Yao        "SampleAfterValue": "400009",
262c72404eSJin Yao        "UMask": "0x4"
272c72404eSJin Yao    },
282c72404eSJin Yao    {
292c72404eSJin Yao        "BriefDescription": "Conditional branch instructions retired.",
302c72404eSJin Yao        "Errata": "SKL091",
312c72404eSJin Yao        "EventCode": "0xC4",
322c72404eSJin Yao        "EventName": "BR_INST_RETIRED.CONDITIONAL",
332c72404eSJin Yao        "PEBS": "1",
342c72404eSJin Yao        "PublicDescription": "This event counts conditional branch instructions retired.",
352c72404eSJin Yao        "SampleAfterValue": "400009",
36b5ff7f27SJin Yao        "UMask": "0x1"
3719f2d40cSAndi Kleen    },
3819f2d40cSAndi Kleen    {
392c72404eSJin Yao        "BriefDescription": "Not taken branch instructions retired.",
402c72404eSJin Yao        "Errata": "SKL091",
412c72404eSJin Yao        "EventCode": "0xc4",
422c72404eSJin Yao        "EventName": "BR_INST_RETIRED.COND_NTAKEN",
432c72404eSJin Yao        "PublicDescription": "This event counts not taken branch instructions retired.",
442c72404eSJin Yao        "SampleAfterValue": "400009",
452c72404eSJin Yao        "UMask": "0x10"
462c72404eSJin Yao    },
472c72404eSJin Yao    {
48b5ff7f27SJin Yao        "BriefDescription": "Far branch instructions retired.",
49b5ff7f27SJin Yao        "Errata": "SKL091",
50b5ff7f27SJin Yao        "EventCode": "0xC4",
51b5ff7f27SJin Yao        "EventName": "BR_INST_RETIRED.FAR_BRANCH",
52b5ff7f27SJin Yao        "PEBS": "1",
53b5ff7f27SJin Yao        "PublicDescription": "This event counts far branch instructions retired.",
54b5ff7f27SJin Yao        "SampleAfterValue": "100007",
55b5ff7f27SJin Yao        "UMask": "0x40"
5619f2d40cSAndi Kleen    },
5719f2d40cSAndi Kleen    {
582c72404eSJin Yao        "BriefDescription": "Direct and indirect near call instructions retired.",
592c72404eSJin Yao        "Errata": "SKL091",
602c72404eSJin Yao        "EventCode": "0xC4",
612c72404eSJin Yao        "EventName": "BR_INST_RETIRED.NEAR_CALL",
622c72404eSJin Yao        "PEBS": "1",
632c72404eSJin Yao        "PublicDescription": "This event counts both direct and indirect near call instructions retired.",
642c72404eSJin Yao        "SampleAfterValue": "100007",
652c72404eSJin Yao        "UMask": "0x2"
662c72404eSJin Yao    },
672c72404eSJin Yao    {
682c72404eSJin Yao        "BriefDescription": "Return instructions retired.",
692c72404eSJin Yao        "Errata": "SKL091",
702c72404eSJin Yao        "EventCode": "0xC4",
712c72404eSJin Yao        "EventName": "BR_INST_RETIRED.NEAR_RETURN",
722c72404eSJin Yao        "PEBS": "1",
732c72404eSJin Yao        "PublicDescription": "This event counts return instructions retired.",
742c72404eSJin Yao        "SampleAfterValue": "100007",
752c72404eSJin Yao        "UMask": "0x8"
762c72404eSJin Yao    },
772c72404eSJin Yao    {
782c72404eSJin Yao        "BriefDescription": "Taken branch instructions retired.",
792c72404eSJin Yao        "Errata": "SKL091",
802c72404eSJin Yao        "EventCode": "0xC4",
812c72404eSJin Yao        "EventName": "BR_INST_RETIRED.NEAR_TAKEN",
822c72404eSJin Yao        "PEBS": "1",
832c72404eSJin Yao        "PublicDescription": "This event counts taken branch instructions retired.",
842c72404eSJin Yao        "SampleAfterValue": "400009",
852c72404eSJin Yao        "UMask": "0x20"
862c72404eSJin Yao    },
872c72404eSJin Yao    {
882c72404eSJin Yao        "BriefDescription": "Not taken branch instructions retired.",
892c72404eSJin Yao        "Errata": "SKL091",
902c72404eSJin Yao        "EventCode": "0xC4",
912c72404eSJin Yao        "EventName": "BR_INST_RETIRED.NOT_TAKEN",
922c72404eSJin Yao        "PublicDescription": "This event counts not taken branch instructions retired.",
932c72404eSJin Yao        "SampleAfterValue": "400009",
94b5ff7f27SJin Yao        "UMask": "0x10"
95630171d4SAndi Kleen    },
96630171d4SAndi Kleen    {
97*100ee7c3SIan Rogers        "BriefDescription": "Speculative and retired mispredicted macro conditional branches",
98*100ee7c3SIan Rogers        "EventCode": "0x89",
99*100ee7c3SIan Rogers        "EventName": "BR_MISP_EXEC.ALL_BRANCHES",
100*100ee7c3SIan Rogers        "PublicDescription": "This event counts both taken and not taken speculative and retired mispredicted branch instructions.",
101*100ee7c3SIan Rogers        "SampleAfterValue": "200003",
102*100ee7c3SIan Rogers        "UMask": "0xff"
103*100ee7c3SIan Rogers    },
104*100ee7c3SIan Rogers    {
105*100ee7c3SIan Rogers        "BriefDescription": "Speculative mispredicted indirect branches",
106*100ee7c3SIan Rogers        "EventCode": "0x89",
107*100ee7c3SIan Rogers        "EventName": "BR_MISP_EXEC.INDIRECT",
108*100ee7c3SIan Rogers        "PublicDescription": "Counts speculatively miss-predicted indirect branches at execution time. Counts for indirect near CALL or JMP instructions (RET excluded).",
109*100ee7c3SIan Rogers        "SampleAfterValue": "200003",
110*100ee7c3SIan Rogers        "UMask": "0xe4"
111*100ee7c3SIan Rogers    },
112*100ee7c3SIan Rogers    {
1132c72404eSJin Yao        "BriefDescription": "All mispredicted macro branch instructions retired.",
1142c72404eSJin Yao        "EventCode": "0xC5",
1152c72404eSJin Yao        "EventName": "BR_MISP_RETIRED.ALL_BRANCHES",
1162c72404eSJin Yao        "PublicDescription": "Counts all the retired branch instructions that were mispredicted by the processor. A branch misprediction occurs when the processor incorrectly predicts the destination of the branch.  When the misprediction is discovered at execution, all the instructions executed in the wrong (speculative) path must be discarded, and the processor must start fetching from the correct path.",
1172c72404eSJin Yao        "SampleAfterValue": "400009"
1182c72404eSJin Yao    },
1192c72404eSJin Yao    {
1202c72404eSJin Yao        "BriefDescription": "Mispredicted macro branch instructions retired.",
1212c72404eSJin Yao        "EventCode": "0xC5",
1222c72404eSJin Yao        "EventName": "BR_MISP_RETIRED.ALL_BRANCHES_PEBS",
1232c72404eSJin Yao        "PEBS": "2",
1242c72404eSJin Yao        "PublicDescription": "This is a precise version of BR_MISP_RETIRED.ALL_BRANCHES that counts all mispredicted macro branch instructions retired.",
1252c72404eSJin Yao        "SampleAfterValue": "400009",
1262c72404eSJin Yao        "UMask": "0x4"
1272c72404eSJin Yao    },
1282c72404eSJin Yao    {
1292c72404eSJin Yao        "BriefDescription": "Mispredicted conditional branch instructions retired.",
1302c72404eSJin Yao        "EventCode": "0xC5",
1312c72404eSJin Yao        "EventName": "BR_MISP_RETIRED.CONDITIONAL",
1322c72404eSJin Yao        "PEBS": "1",
1332c72404eSJin Yao        "PublicDescription": "This event counts mispredicted conditional branch instructions retired.",
1342c72404eSJin Yao        "SampleAfterValue": "400009",
135b5ff7f27SJin Yao        "UMask": "0x1"
136630171d4SAndi Kleen    },
137630171d4SAndi Kleen    {
138b5ff7f27SJin Yao        "BriefDescription": "Mispredicted direct and indirect near call instructions retired.",
139b5ff7f27SJin Yao        "EventCode": "0xC5",
140b5ff7f27SJin Yao        "EventName": "BR_MISP_RETIRED.NEAR_CALL",
141b5ff7f27SJin Yao        "PEBS": "1",
142b5ff7f27SJin Yao        "PublicDescription": "Counts both taken and not taken retired mispredicted direct and indirect near calls, including both register and memory indirect.",
143b5ff7f27SJin Yao        "SampleAfterValue": "400009",
144b5ff7f27SJin Yao        "UMask": "0x2"
145b5ff7f27SJin Yao    },
146b5ff7f27SJin Yao    {
1472c72404eSJin Yao        "BriefDescription": "Number of near branch instructions retired that were mispredicted and taken.",
1482c72404eSJin Yao        "EventCode": "0xC5",
1492c72404eSJin Yao        "EventName": "BR_MISP_RETIRED.NEAR_TAKEN",
1502c72404eSJin Yao        "PEBS": "1",
1512c72404eSJin Yao        "SampleAfterValue": "400009",
152b5ff7f27SJin Yao        "UMask": "0x20"
153b5ff7f27SJin Yao    },
154b5ff7f27SJin Yao    {
15559fd7d32SIan Rogers        "BriefDescription": "This event counts the number of mispredicted ret instructions retired. Non PEBS",
15659fd7d32SIan Rogers        "EventCode": "0xC5",
15759fd7d32SIan Rogers        "EventName": "BR_MISP_RETIRED.RET",
15859fd7d32SIan Rogers        "PEBS": "1",
15959fd7d32SIan Rogers        "PublicDescription": "This is a non-precise version (that is, does not use PEBS) of the event that counts mispredicted return instructions retired.",
16059fd7d32SIan Rogers        "SampleAfterValue": "100007",
16159fd7d32SIan Rogers        "UMask": "0x8"
16259fd7d32SIan Rogers    },
16359fd7d32SIan Rogers    {
1642c72404eSJin Yao        "BriefDescription": "Core crystal clock cycles when this thread is unhalted and the other thread is halted.",
1652c72404eSJin Yao        "EventCode": "0x3C",
1662c72404eSJin Yao        "EventName": "CPU_CLK_THREAD_UNHALTED.ONE_THREAD_ACTIVE",
1672c72404eSJin Yao        "SampleAfterValue": "25003",
1682c72404eSJin Yao        "UMask": "0x2"
1692c72404eSJin Yao    },
1702c72404eSJin Yao    {
1712c72404eSJin Yao        "BriefDescription": "Core crystal clock cycles when the thread is unhalted.",
1722c72404eSJin Yao        "EventCode": "0x3C",
1732c72404eSJin Yao        "EventName": "CPU_CLK_THREAD_UNHALTED.REF_XCLK",
1742c72404eSJin Yao        "SampleAfterValue": "25003",
1752c72404eSJin Yao        "UMask": "0x1"
1762c72404eSJin Yao    },
1772c72404eSJin Yao    {
1782c72404eSJin Yao        "AnyThread": "1",
1792c72404eSJin Yao        "BriefDescription": "Core crystal clock cycles when at least one thread on the physical core is unhalted.",
1802c72404eSJin Yao        "EventCode": "0x3C",
1812c72404eSJin Yao        "EventName": "CPU_CLK_THREAD_UNHALTED.REF_XCLK_ANY",
1822c72404eSJin Yao        "SampleAfterValue": "25003",
1832c72404eSJin Yao        "UMask": "0x1"
1842c72404eSJin Yao    },
1852c72404eSJin Yao    {
1862c72404eSJin Yao        "BriefDescription": "Core crystal clock cycles when this thread is unhalted and the other thread is halted.",
1872c72404eSJin Yao        "EventCode": "0x3C",
1882c72404eSJin Yao        "EventName": "CPU_CLK_UNHALTED.ONE_THREAD_ACTIVE",
1892c72404eSJin Yao        "SampleAfterValue": "25003",
1902c72404eSJin Yao        "UMask": "0x2"
1912c72404eSJin Yao    },
1922c72404eSJin Yao    {
1932c72404eSJin Yao        "BriefDescription": "Reference cycles when the core is not in halt state.",
1942c72404eSJin Yao        "EventName": "CPU_CLK_UNHALTED.REF_TSC",
1952c72404eSJin Yao        "PublicDescription": "Counts the number of reference cycles when the core is not in a halt state. The core enters the halt state when it is running the HLT instruction or the MWAIT instruction. This event is not affected by core frequency changes (for example, P states, TM2 transitions) but has the same incrementing frequency as the time stamp counter. This event can approximate elapsed time while the core was not in a halt state. This event has a constant ratio with the CPU_CLK_UNHALTED.REF_XCLK event. It is counted on a dedicated fixed counter, leaving the four (eight when Hyperthreading is disabled) programmable counters available for other events. Note: On all current platforms this event stops counting during 'throttling (TM)' states duty off periods the processor is 'halted'.  The counter update is done at a lower clock rate then the core clock the overflow status bit for this counter may appear 'sticky'.  After the counter has overflowed and software clears the overflow status bit and resets the counter to less than MAX. The reset value to the counter is not clocked immediately so the overflow status bit will flip 'high (1)' and generate another PMI (if enabled) after which the reset value gets clocked into the counter. Therefore, software will get the interrupt, read the overflow status bit '1 for bit 34 while the counter value is less than MAX. Software should ignore this case.",
1962c72404eSJin Yao        "SampleAfterValue": "2000003",
1972c72404eSJin Yao        "UMask": "0x3"
1982c72404eSJin Yao    },
1992c72404eSJin Yao    {
2002c72404eSJin Yao        "BriefDescription": "Core crystal clock cycles when the thread is unhalted.",
2012c72404eSJin Yao        "EventCode": "0x3C",
2022c72404eSJin Yao        "EventName": "CPU_CLK_UNHALTED.REF_XCLK",
2032c72404eSJin Yao        "SampleAfterValue": "25003",
2042c72404eSJin Yao        "UMask": "0x1"
2052c72404eSJin Yao    },
2062c72404eSJin Yao    {
2072c72404eSJin Yao        "AnyThread": "1",
2082c72404eSJin Yao        "BriefDescription": "Core crystal clock cycles when at least one thread on the physical core is unhalted.",
2092c72404eSJin Yao        "EventCode": "0x3C",
2102c72404eSJin Yao        "EventName": "CPU_CLK_UNHALTED.REF_XCLK_ANY",
2112c72404eSJin Yao        "SampleAfterValue": "25003",
2122c72404eSJin Yao        "UMask": "0x1"
2132c72404eSJin Yao    },
2142c72404eSJin Yao    {
2152c72404eSJin Yao        "BriefDescription": "Counts when there is a transition from ring 1, 2 or 3 to ring 0.",
2162c72404eSJin Yao        "CounterMask": "1",
2172c72404eSJin Yao        "EdgeDetect": "1",
2182c72404eSJin Yao        "EventCode": "0x3C",
2192c72404eSJin Yao        "EventName": "CPU_CLK_UNHALTED.RING0_TRANS",
2202c72404eSJin Yao        "PublicDescription": "Counts when the Current Privilege Level (CPL) transitions from ring 1, 2 or 3 to ring 0 (Kernel).",
2212c72404eSJin Yao        "SampleAfterValue": "100007"
2222c72404eSJin Yao    },
2232c72404eSJin Yao    {
2242c72404eSJin Yao        "BriefDescription": "Core cycles when the thread is not in halt state",
2252c72404eSJin Yao        "EventName": "CPU_CLK_UNHALTED.THREAD",
2262c72404eSJin Yao        "PublicDescription": "Counts the number of core cycles while the thread is not in a halt state. The thread enters the halt state when it is running the HLT instruction. This event is a component in many key event ratios. The core frequency may change from time to time due to transitions associated with Enhanced Intel SpeedStep Technology or TM2. For this reason this event may have a changing ratio with regards to time. When the core frequency is constant, this event can approximate elapsed time while the core was not in the halt state. It is counted on a dedicated fixed counter, leaving the four (eight when Hyperthreading is disabled) programmable counters available for other events.",
2272c72404eSJin Yao        "SampleAfterValue": "2000003",
2282c72404eSJin Yao        "UMask": "0x2"
2292c72404eSJin Yao    },
2302c72404eSJin Yao    {
2312c72404eSJin Yao        "AnyThread": "1",
2322c72404eSJin Yao        "BriefDescription": "Core cycles when at least one thread on the physical core is not in halt state.",
2332c72404eSJin Yao        "EventName": "CPU_CLK_UNHALTED.THREAD_ANY",
234630171d4SAndi Kleen        "SampleAfterValue": "2000003",
235b5ff7f27SJin Yao        "UMask": "0x2"
236630171d4SAndi Kleen    },
237630171d4SAndi Kleen    {
238b5ff7f27SJin Yao        "BriefDescription": "Thread cycles when thread is not in halt state",
239b5ff7f27SJin Yao        "EventCode": "0x3C",
240b5ff7f27SJin Yao        "EventName": "CPU_CLK_UNHALTED.THREAD_P",
241b5ff7f27SJin Yao        "PublicDescription": "This is an architectural event that counts the number of thread cycles while the thread is not in a halt state. The thread enters the halt state when it is running the HLT instruction. The core frequency may change from time to time due to power or thermal throttling. For this reason, this event may have a changing ratio with regards to wall clock time.",
242b5ff7f27SJin Yao        "SampleAfterValue": "2000003"
24319f2d40cSAndi Kleen    },
24419f2d40cSAndi Kleen    {
2452c72404eSJin Yao        "AnyThread": "1",
2462c72404eSJin Yao        "BriefDescription": "Core cycles when at least one thread on the physical core is not in halt state.",
2472c72404eSJin Yao        "EventCode": "0x3C",
2482c72404eSJin Yao        "EventName": "CPU_CLK_UNHALTED.THREAD_P_ANY",
2492c72404eSJin Yao        "SampleAfterValue": "2000003"
2502c72404eSJin Yao    },
2512c72404eSJin Yao    {
2522c72404eSJin Yao        "BriefDescription": "Cycles while L1 cache miss demand load is outstanding.",
2532c72404eSJin Yao        "CounterMask": "8",
2542c72404eSJin Yao        "EventCode": "0xA3",
2552c72404eSJin Yao        "EventName": "CYCLE_ACTIVITY.CYCLES_L1D_MISS",
2562c72404eSJin Yao        "SampleAfterValue": "2000003",
2572c72404eSJin Yao        "UMask": "0x8"
2582c72404eSJin Yao    },
2592c72404eSJin Yao    {
2602c72404eSJin Yao        "BriefDescription": "Cycles while L2 cache miss demand load is outstanding.",
2612c72404eSJin Yao        "CounterMask": "1",
2622c72404eSJin Yao        "EventCode": "0xA3",
2632c72404eSJin Yao        "EventName": "CYCLE_ACTIVITY.CYCLES_L2_MISS",
26419f2d40cSAndi Kleen        "SampleAfterValue": "2000003",
265b5ff7f27SJin Yao        "UMask": "0x1"
26619f2d40cSAndi Kleen    },
26719f2d40cSAndi Kleen    {
2682c72404eSJin Yao        "BriefDescription": "Cycles while memory subsystem has an outstanding load.",
2692c72404eSJin Yao        "CounterMask": "16",
2702c72404eSJin Yao        "EventCode": "0xA3",
2712c72404eSJin Yao        "EventName": "CYCLE_ACTIVITY.CYCLES_MEM_ANY",
2722c72404eSJin Yao        "SampleAfterValue": "2000003",
2732c72404eSJin Yao        "UMask": "0x10"
2742c72404eSJin Yao    },
2752c72404eSJin Yao    {
2762c72404eSJin Yao        "BriefDescription": "Execution stalls while L1 cache miss demand load is outstanding.",
2772c72404eSJin Yao        "CounterMask": "12",
2782c72404eSJin Yao        "EventCode": "0xA3",
2792c72404eSJin Yao        "EventName": "CYCLE_ACTIVITY.STALLS_L1D_MISS",
2802c72404eSJin Yao        "SampleAfterValue": "2000003",
2812c72404eSJin Yao        "UMask": "0xc"
2822c72404eSJin Yao    },
2832c72404eSJin Yao    {
2842c72404eSJin Yao        "BriefDescription": "Execution stalls while L2 cache miss demand load is outstanding.",
2852c72404eSJin Yao        "CounterMask": "5",
2862c72404eSJin Yao        "EventCode": "0xA3",
2872c72404eSJin Yao        "EventName": "CYCLE_ACTIVITY.STALLS_L2_MISS",
2882c72404eSJin Yao        "SampleAfterValue": "2000003",
2892c72404eSJin Yao        "UMask": "0x5"
2902c72404eSJin Yao    },
2912c72404eSJin Yao    {
2922c72404eSJin Yao        "BriefDescription": "Execution stalls while memory subsystem has an outstanding load.",
2932c72404eSJin Yao        "CounterMask": "20",
2942c72404eSJin Yao        "EventCode": "0xA3",
2952c72404eSJin Yao        "EventName": "CYCLE_ACTIVITY.STALLS_MEM_ANY",
2962c72404eSJin Yao        "SampleAfterValue": "2000003",
2972c72404eSJin Yao        "UMask": "0x14"
2982c72404eSJin Yao    },
2992c72404eSJin Yao    {
3002c72404eSJin Yao        "BriefDescription": "Total execution stalls.",
3012c72404eSJin Yao        "CounterMask": "4",
3022c72404eSJin Yao        "EventCode": "0xA3",
3032c72404eSJin Yao        "EventName": "CYCLE_ACTIVITY.STALLS_TOTAL",
3042c72404eSJin Yao        "SampleAfterValue": "2000003",
3052c72404eSJin Yao        "UMask": "0x4"
3062c72404eSJin Yao    },
3072c72404eSJin Yao    {
3082c72404eSJin Yao        "BriefDescription": "Cycles total of 1 uop is executed on all ports and Reservation Station was not empty.",
3092c72404eSJin Yao        "EventCode": "0xA6",
3102c72404eSJin Yao        "EventName": "EXE_ACTIVITY.1_PORTS_UTIL",
3112c72404eSJin Yao        "PublicDescription": "Counts cycles during which a total of 1 uop was executed on all ports and Reservation Station (RS) was not empty.",
3122c72404eSJin Yao        "SampleAfterValue": "2000003",
3132c72404eSJin Yao        "UMask": "0x2"
3142c72404eSJin Yao    },
3152c72404eSJin Yao    {
3162c72404eSJin Yao        "BriefDescription": "Cycles total of 2 uops are executed on all ports and Reservation Station was not empty.",
3172c72404eSJin Yao        "EventCode": "0xA6",
3182c72404eSJin Yao        "EventName": "EXE_ACTIVITY.2_PORTS_UTIL",
3192c72404eSJin Yao        "PublicDescription": "Counts cycles during which a total of 2 uops were executed on all ports and Reservation Station (RS) was not empty.",
3202c72404eSJin Yao        "SampleAfterValue": "2000003",
3212c72404eSJin Yao        "UMask": "0x4"
3222c72404eSJin Yao    },
3232c72404eSJin Yao    {
3242c72404eSJin Yao        "BriefDescription": "Cycles total of 3 uops are executed on all ports and Reservation Station was not empty.",
3252c72404eSJin Yao        "EventCode": "0xA6",
3262c72404eSJin Yao        "EventName": "EXE_ACTIVITY.3_PORTS_UTIL",
3272c72404eSJin Yao        "PublicDescription": "Cycles total of 3 uops are executed on all ports and Reservation Station (RS) was not empty.",
3282c72404eSJin Yao        "SampleAfterValue": "2000003",
3292c72404eSJin Yao        "UMask": "0x8"
3302c72404eSJin Yao    },
3312c72404eSJin Yao    {
3322c72404eSJin Yao        "BriefDescription": "Cycles total of 4 uops are executed on all ports and Reservation Station was not empty.",
3332c72404eSJin Yao        "EventCode": "0xA6",
3342c72404eSJin Yao        "EventName": "EXE_ACTIVITY.4_PORTS_UTIL",
3352c72404eSJin Yao        "PublicDescription": "Cycles total of 4 uops are executed on all ports and Reservation Station (RS) was not empty.",
3362c72404eSJin Yao        "SampleAfterValue": "2000003",
3372c72404eSJin Yao        "UMask": "0x10"
3382c72404eSJin Yao    },
3392c72404eSJin Yao    {
3402c72404eSJin Yao        "BriefDescription": "Cycles where the Store Buffer was full and no outstanding load.",
3412c72404eSJin Yao        "EventCode": "0xA6",
3422c72404eSJin Yao        "EventName": "EXE_ACTIVITY.BOUND_ON_STORES",
3432c72404eSJin Yao        "SampleAfterValue": "2000003",
3442c72404eSJin Yao        "UMask": "0x40"
3452c72404eSJin Yao    },
3462c72404eSJin Yao    {
3472c72404eSJin Yao        "BriefDescription": "Cycles where no uops were executed, the Reservation Station was not empty, the Store Buffer was full and there was no outstanding load.",
3482c72404eSJin Yao        "EventCode": "0xA6",
3492c72404eSJin Yao        "EventName": "EXE_ACTIVITY.EXE_BOUND_0_PORTS",
3502c72404eSJin Yao        "PublicDescription": "Counts cycles during which no uops were executed on all ports and Reservation Station (RS) was not empty.",
3512c72404eSJin Yao        "SampleAfterValue": "2000003",
3522c72404eSJin Yao        "UMask": "0x1"
3532c72404eSJin Yao    },
3542c72404eSJin Yao    {
3552c72404eSJin Yao        "BriefDescription": "Stalls caused by changing prefix length of the instruction.",
3562c72404eSJin Yao        "EventCode": "0x87",
3572c72404eSJin Yao        "EventName": "ILD_STALL.LCP",
3582c72404eSJin Yao        "PublicDescription": "Counts cycles that the Instruction Length decoder (ILD) stalls occurred due to dynamically changing prefix length of the decoded instruction (by operand size prefix instruction 0x66, address size prefix instruction 0x67 or REX.W for Intel64). Count is proportional to the number of prefixes in a 16B-line. This may result in a three-cycle penalty for each LCP (Length changing prefix) in a 16-byte chunk.",
3592c72404eSJin Yao        "SampleAfterValue": "2000003",
3602c72404eSJin Yao        "UMask": "0x1"
3612c72404eSJin Yao    },
3622c72404eSJin Yao    {
363e14fd2eeSIan Rogers        "BriefDescription": "Instruction decoders utilized in a cycle",
364e14fd2eeSIan Rogers        "EventCode": "0x55",
365e14fd2eeSIan Rogers        "EventName": "INST_DECODED.DECODERS",
366e14fd2eeSIan Rogers        "PublicDescription": "Number of decoders utilized in a cycle when the MITE (legacy decode pipeline) fetches instructions.",
367e14fd2eeSIan Rogers        "SampleAfterValue": "2000003",
368e14fd2eeSIan Rogers        "UMask": "0x1"
369e14fd2eeSIan Rogers    },
370e14fd2eeSIan Rogers    {
3712c72404eSJin Yao        "BriefDescription": "Instructions retired from execution.",
3722c72404eSJin Yao        "EventName": "INST_RETIRED.ANY",
3732c72404eSJin Yao        "PublicDescription": "Counts the number of instructions retired from execution. For instructions that consist of multiple micro-ops, Counts the retirement of the last micro-op of the instruction. Counting continues during hardware interrupts, traps, and inside interrupt handlers. Notes: INST_RETIRED.ANY is counted by a designated fixed counter, leaving the four (eight when Hyperthreading is disabled) programmable counters available for other events. INST_RETIRED.ANY_P is counted by a programmable counter and it is an architectural performance event. Counting: Faulting executions of GETSEC/VM entry/VM Exit/MWait will not count as retired instructions.",
3742c72404eSJin Yao        "SampleAfterValue": "2000003",
3752c72404eSJin Yao        "UMask": "0x1"
3762c72404eSJin Yao    },
3772c72404eSJin Yao    {
3782c72404eSJin Yao        "BriefDescription": "Number of instructions retired. General Counter - architectural event",
3792c72404eSJin Yao        "Errata": "SKL091, SKL044",
3802c72404eSJin Yao        "EventCode": "0xC0",
3812c72404eSJin Yao        "EventName": "INST_RETIRED.ANY_P",
3822c72404eSJin Yao        "PublicDescription": "Counts the number of instructions (EOMs) retired. Counting covers macro-fused instructions individually (that is, increments by two).",
3832c72404eSJin Yao        "SampleAfterValue": "2000003"
3842c72404eSJin Yao    },
3852c72404eSJin Yao    {
3863bad20d7SIan Rogers        "BriefDescription": "Number of all retired NOP instructions.",
3873bad20d7SIan Rogers        "Errata": "SKL091, SKL044",
3883bad20d7SIan Rogers        "EventCode": "0xC0",
3893bad20d7SIan Rogers        "EventName": "INST_RETIRED.NOP",
3903bad20d7SIan Rogers        "PEBS": "1",
3913bad20d7SIan Rogers        "SampleAfterValue": "2000003",
3923bad20d7SIan Rogers        "UMask": "0x2"
3933bad20d7SIan Rogers    },
3943bad20d7SIan Rogers    {
3952c72404eSJin Yao        "BriefDescription": "Precise instruction retired event with HW to reduce effect of PEBS shadow in IP distribution",
3962c72404eSJin Yao        "Errata": "SKL091, SKL044",
3972c72404eSJin Yao        "EventCode": "0xC0",
3982c72404eSJin Yao        "EventName": "INST_RETIRED.PREC_DIST",
3992c72404eSJin Yao        "PEBS": "2",
4002c72404eSJin Yao        "PublicDescription": "A version of INST_RETIRED that allows for a more unbiased distribution of samples across instructions retired. It utilizes the Precise Distribution of Instructions Retired (PDIR) feature to mitigate some bias in how retired instructions get sampled.",
4012c72404eSJin Yao        "SampleAfterValue": "2000003",
4022c72404eSJin Yao        "UMask": "0x1"
4032c72404eSJin Yao    },
4042c72404eSJin Yao    {
4052c72404eSJin Yao        "BriefDescription": "Number of cycles using always true condition applied to  PEBS instructions retired event.",
4062c72404eSJin Yao        "CounterMask": "10",
4072c72404eSJin Yao        "Errata": "SKL091, SKL044",
4082c72404eSJin Yao        "EventCode": "0xC0",
4092c72404eSJin Yao        "EventName": "INST_RETIRED.TOTAL_CYCLES_PS",
4102c72404eSJin Yao        "Invert": "1",
4112c72404eSJin Yao        "PEBS": "2",
4122c72404eSJin Yao        "PublicDescription": "Number of cycles using an always true condition applied to  PEBS instructions retired event. (inst_ret< 16)",
4132c72404eSJin Yao        "SampleAfterValue": "2000003",
4142c72404eSJin Yao        "UMask": "0x1"
4152c72404eSJin Yao    },
4162c72404eSJin Yao    {
4172c72404eSJin Yao        "BriefDescription": "Cycles the issue-stage is waiting for front-end to fetch from resteered path following branch misprediction or machine clear events.",
4182c72404eSJin Yao        "EventCode": "0x0D",
4192c72404eSJin Yao        "EventName": "INT_MISC.CLEAR_RESTEER_CYCLES",
4202c72404eSJin Yao        "SampleAfterValue": "2000003",
4212c72404eSJin Yao        "UMask": "0x80"
4222c72404eSJin Yao    },
4232c72404eSJin Yao    {
4242c72404eSJin Yao        "BriefDescription": "Core cycles the allocator was stalled due to recovery from earlier clear event for this thread (e.g. misprediction or memory nuke)",
4252c72404eSJin Yao        "EventCode": "0x0D",
4262c72404eSJin Yao        "EventName": "INT_MISC.RECOVERY_CYCLES",
4272c72404eSJin Yao        "PublicDescription": "Core cycles the Resource allocator was stalled due to recovery from an earlier branch misprediction or machine clear event.",
4282c72404eSJin Yao        "SampleAfterValue": "2000003",
4292c72404eSJin Yao        "UMask": "0x1"
4302c72404eSJin Yao    },
4312c72404eSJin Yao    {
4322c72404eSJin Yao        "AnyThread": "1",
4332c72404eSJin Yao        "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).",
4342c72404eSJin Yao        "EventCode": "0x0D",
4352c72404eSJin Yao        "EventName": "INT_MISC.RECOVERY_CYCLES_ANY",
4362c72404eSJin Yao        "SampleAfterValue": "2000003",
4372c72404eSJin Yao        "UMask": "0x1"
4382c72404eSJin Yao    },
4392c72404eSJin Yao    {
4402c72404eSJin Yao        "BriefDescription": "The number of times that split load operations are temporarily blocked because all resources for handling the split accesses are in use",
4412c72404eSJin Yao        "EventCode": "0x03",
4422c72404eSJin Yao        "EventName": "LD_BLOCKS.NO_SR",
4432c72404eSJin Yao        "PublicDescription": "The number of times that split load operations are temporarily blocked because all resources for handling the split accesses are in use.",
4442c72404eSJin Yao        "SampleAfterValue": "100003",
4452c72404eSJin Yao        "UMask": "0x8"
4462c72404eSJin Yao    },
4472c72404eSJin Yao    {
4482c72404eSJin Yao        "BriefDescription": "Loads blocked due to overlapping with a preceding store that cannot be forwarded.",
4492c72404eSJin Yao        "EventCode": "0x03",
4502c72404eSJin Yao        "EventName": "LD_BLOCKS.STORE_FORWARD",
4512c72404eSJin Yao        "PublicDescription": "Counts the number of times where store forwarding was prevented for a load operation. The most common case is a load blocked due to the address of memory access (partially) overlapping with a preceding uncompleted store. Note: See the table of not supported store forwards in the Optimization Guide.",
4522c72404eSJin Yao        "SampleAfterValue": "100003",
4532c72404eSJin Yao        "UMask": "0x2"
4542c72404eSJin Yao    },
4552c72404eSJin Yao    {
4562c72404eSJin Yao        "BriefDescription": "False dependencies in MOB due to partial compare on address.",
4572c72404eSJin Yao        "EventCode": "0x07",
4582c72404eSJin Yao        "EventName": "LD_BLOCKS_PARTIAL.ADDRESS_ALIAS",
4592c72404eSJin Yao        "PublicDescription": "Counts false dependencies in MOB when the partial comparison upon loose net check and dependency was resolved by the Enhanced Loose net mechanism. This may not result in high performance penalties. Loose net checks can fail when loads and stores are 4k aliased.",
4602c72404eSJin Yao        "SampleAfterValue": "100003",
4612c72404eSJin Yao        "UMask": "0x1"
4622c72404eSJin Yao    },
4632c72404eSJin Yao    {
4642c72404eSJin Yao        "BriefDescription": "Demand load dispatches that hit L1D fill buffer (FB) allocated for software prefetch.",
4652c72404eSJin Yao        "EventCode": "0x4C",
4662c72404eSJin Yao        "EventName": "LOAD_HIT_PRE.SW_PF",
4672c72404eSJin Yao        "PublicDescription": "Counts all not software-prefetch load dispatches that hit the fill buffer (FB) allocated for the software prefetch. It can also be incremented by some lock instructions. So it should only be used with profiling so that the locks can be excluded by ASM (Assembly File) inspection of the nearby instructions.",
4682c72404eSJin Yao        "SampleAfterValue": "100003",
4692c72404eSJin Yao        "UMask": "0x1"
4702c72404eSJin Yao    },
4712c72404eSJin Yao    {
4722c72404eSJin Yao        "BriefDescription": "Cycles 4 Uops delivered by the LSD, but didn't come from the decoder.",
4732c72404eSJin Yao        "CounterMask": "4",
4742c72404eSJin Yao        "EventCode": "0xA8",
4752c72404eSJin Yao        "EventName": "LSD.CYCLES_4_UOPS",
4762c72404eSJin Yao        "PublicDescription": "Counts the cycles when 4 uops are delivered by the LSD (Loop-stream detector).",
4772c72404eSJin Yao        "SampleAfterValue": "2000003",
4782c72404eSJin Yao        "UMask": "0x1"
4792c72404eSJin Yao    },
4802c72404eSJin Yao    {
4812c72404eSJin Yao        "BriefDescription": "Cycles Uops delivered by the LSD, but didn't come from the decoder.",
4822c72404eSJin Yao        "CounterMask": "1",
4832c72404eSJin Yao        "EventCode": "0xA8",
4842c72404eSJin Yao        "EventName": "LSD.CYCLES_ACTIVE",
4852c72404eSJin Yao        "PublicDescription": "Counts the cycles when at least one uop is delivered by the LSD (Loop-stream detector).",
4862c72404eSJin Yao        "SampleAfterValue": "2000003",
4872c72404eSJin Yao        "UMask": "0x1"
4882c72404eSJin Yao    },
4892c72404eSJin Yao    {
4902c72404eSJin Yao        "BriefDescription": "Number of Uops delivered by the LSD.",
4912c72404eSJin Yao        "EventCode": "0xA8",
4922c72404eSJin Yao        "EventName": "LSD.UOPS",
4932c72404eSJin Yao        "PublicDescription": "Number of uops delivered to the back-end by the LSD(Loop Stream Detector).",
4942c72404eSJin Yao        "SampleAfterValue": "2000003",
495b5ff7f27SJin Yao        "UMask": "0x1"
496b5ff7f27SJin Yao    },
497b5ff7f27SJin Yao    {
498630171d4SAndi Kleen        "BriefDescription": "Number of machine clears (nukes) of any type.",
499630171d4SAndi Kleen        "CounterMask": "1",
500b5ff7f27SJin Yao        "EdgeDetect": "1",
501b5ff7f27SJin Yao        "EventCode": "0xC3",
502b5ff7f27SJin Yao        "EventName": "MACHINE_CLEARS.COUNT",
503630171d4SAndi Kleen        "SampleAfterValue": "100003",
504b5ff7f27SJin Yao        "UMask": "0x1"
505630171d4SAndi Kleen    },
506630171d4SAndi Kleen    {
5072c72404eSJin Yao        "BriefDescription": "Self-modifying code (SMC) detected.",
5082c72404eSJin Yao        "EventCode": "0xC3",
5092c72404eSJin Yao        "EventName": "MACHINE_CLEARS.SMC",
5102c72404eSJin Yao        "PublicDescription": "Counts self-modifying code (SMC) detected, which causes a machine clear.",
5112c72404eSJin Yao        "SampleAfterValue": "100003",
5122c72404eSJin Yao        "UMask": "0x4"
5132c72404eSJin Yao    },
5142c72404eSJin Yao    {
5152c72404eSJin Yao        "BriefDescription": "Number of times a microcode assist is invoked by HW other than FP-assist. Examples include AD (page Access Dirty) and AVX* related assists.",
5162c72404eSJin Yao        "EventCode": "0xC1",
5172c72404eSJin Yao        "EventName": "OTHER_ASSISTS.ANY",
5182c72404eSJin Yao        "SampleAfterValue": "100003",
5192c72404eSJin Yao        "UMask": "0x3f"
5202c72404eSJin Yao    },
5212c72404eSJin Yao    {
5222c72404eSJin Yao        "BriefDescription": "Cycles where the pipeline is stalled due to serializing operations.",
5232c72404eSJin Yao        "EventCode": "0x59",
5242c72404eSJin Yao        "EventName": "PARTIAL_RAT_STALLS.SCOREBOARD",
5252c72404eSJin Yao        "PublicDescription": "This event counts cycles during which the microcode scoreboard stalls happen.",
526b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
527b5ff7f27SJin Yao        "UMask": "0x1"
528b5ff7f27SJin Yao    },
529b5ff7f27SJin Yao    {
5302c72404eSJin Yao        "BriefDescription": "Resource-related stall cycles",
5312c72404eSJin Yao        "EventCode": "0xa2",
5322c72404eSJin Yao        "EventName": "RESOURCE_STALLS.ANY",
5332c72404eSJin Yao        "PublicDescription": "Counts resource-related stall cycles.",
534b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
535b5ff7f27SJin Yao        "UMask": "0x1"
536b5ff7f27SJin Yao    },
537b5ff7f27SJin Yao    {
5382c72404eSJin Yao        "BriefDescription": "Cycles stalled due to no store buffers available. (not including draining form sync).",
5392c72404eSJin Yao        "EventCode": "0xA2",
5402c72404eSJin Yao        "EventName": "RESOURCE_STALLS.SB",
5412c72404eSJin Yao        "PublicDescription": "Counts allocation stall cycles caused by the store buffer (SB) being full. This counts cycles that the pipeline back-end blocked uop delivery from the front-end.",
542b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
543b5ff7f27SJin Yao        "UMask": "0x8"
544b5ff7f27SJin Yao    },
545b5ff7f27SJin Yao    {
5462c72404eSJin Yao        "BriefDescription": "Increments whenever there is an update to the LBR array.",
5472c72404eSJin Yao        "EventCode": "0xCC",
5482c72404eSJin Yao        "EventName": "ROB_MISC_EVENTS.LBR_INSERTS",
5492c72404eSJin Yao        "PublicDescription": "Increments when an entry is added to the Last Branch Record (LBR) array (or removed from the array in case of RETURNs in call stack mode). The event requires LBR enable via IA32_DEBUGCTL MSR and branch type selection via MSR_LBR_SELECT.",
5502c72404eSJin Yao        "SampleAfterValue": "2000003",
5512c72404eSJin Yao        "UMask": "0x20"
5522c72404eSJin Yao    },
5532c72404eSJin Yao    {
5542c72404eSJin Yao        "BriefDescription": "Number of retired PAUSE instructions (that do not end up with a VMExit to the VMM; TSX aborted Instructions may be counted). This event is not supported on first SKL and KBL products.",
5552c72404eSJin Yao        "EventCode": "0xCC",
5562c72404eSJin Yao        "EventName": "ROB_MISC_EVENTS.PAUSE_INST",
5572c72404eSJin Yao        "SampleAfterValue": "2000003",
5582c72404eSJin Yao        "UMask": "0x40"
5592c72404eSJin Yao    },
5602c72404eSJin Yao    {
5612c72404eSJin Yao        "BriefDescription": "Cycles when Reservation Station (RS) is empty for the thread",
5622c72404eSJin Yao        "EventCode": "0x5E",
5632c72404eSJin Yao        "EventName": "RS_EVENTS.EMPTY_CYCLES",
5642c72404eSJin Yao        "PublicDescription": "Counts cycles during which the reservation station (RS) is empty for the thread.; Note: In ST-mode, not active thread should drive 0. This is usually caused by severely costly branch mispredictions, or allocator/FE issues.",
5652c72404eSJin Yao        "SampleAfterValue": "2000003",
5662c72404eSJin Yao        "UMask": "0x1"
5672c72404eSJin Yao    },
5682c72404eSJin Yao    {
5692c72404eSJin Yao        "BriefDescription": "Counts end of periods where the Reservation Station (RS) was empty. Could be useful to precisely locate Frontend Latency Bound issues.",
570b5ff7f27SJin Yao        "CounterMask": "1",
5712c72404eSJin Yao        "EdgeDetect": "1",
5722c72404eSJin Yao        "EventCode": "0x5E",
5732c72404eSJin Yao        "EventName": "RS_EVENTS.EMPTY_END",
5742c72404eSJin Yao        "Invert": "1",
5752c72404eSJin Yao        "PublicDescription": "Counts end of periods where the Reservation Station (RS) was empty. Could be useful to precisely locate front-end Latency Bound issues.",
576b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
577b5ff7f27SJin Yao        "UMask": "0x1"
578b5ff7f27SJin Yao    },
579b5ff7f27SJin Yao    {
580b5ff7f27SJin Yao        "BriefDescription": "Cycles per thread when uops are executed in port 0",
581b5ff7f27SJin Yao        "EventCode": "0xA1",
582b5ff7f27SJin Yao        "EventName": "UOPS_DISPATCHED_PORT.PORT_0",
583b5ff7f27SJin Yao        "PublicDescription": "Counts, on the per-thread basis, cycles during which at least one uop is dispatched from the Reservation Station (RS) to port 0.",
584b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
585b5ff7f27SJin Yao        "UMask": "0x1"
586b5ff7f27SJin Yao    },
587b5ff7f27SJin Yao    {
588b5ff7f27SJin Yao        "BriefDescription": "Cycles per thread when uops are executed in port 1",
589b5ff7f27SJin Yao        "EventCode": "0xA1",
590b5ff7f27SJin Yao        "EventName": "UOPS_DISPATCHED_PORT.PORT_1",
591b5ff7f27SJin Yao        "PublicDescription": "Counts, on the per-thread basis, cycles during which at least one uop is dispatched from the Reservation Station (RS) to port 1.",
592b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
593b5ff7f27SJin Yao        "UMask": "0x2"
594b5ff7f27SJin Yao    },
595b5ff7f27SJin Yao    {
596b5ff7f27SJin Yao        "BriefDescription": "Cycles per thread when uops are executed in port 2",
597b5ff7f27SJin Yao        "EventCode": "0xA1",
598b5ff7f27SJin Yao        "EventName": "UOPS_DISPATCHED_PORT.PORT_2",
599b5ff7f27SJin Yao        "PublicDescription": "Counts, on the per-thread basis, cycles during which at least one uop is dispatched from the Reservation Station (RS) to port 2.",
600b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
601b5ff7f27SJin Yao        "UMask": "0x4"
602b5ff7f27SJin Yao    },
603b5ff7f27SJin Yao    {
604b5ff7f27SJin Yao        "BriefDescription": "Cycles per thread when uops are executed in port 3",
605b5ff7f27SJin Yao        "EventCode": "0xA1",
606b5ff7f27SJin Yao        "EventName": "UOPS_DISPATCHED_PORT.PORT_3",
607b5ff7f27SJin Yao        "PublicDescription": "Counts, on the per-thread basis, cycles during which at least one uop is dispatched from the Reservation Station (RS) to port 3.",
608b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
609b5ff7f27SJin Yao        "UMask": "0x8"
610b5ff7f27SJin Yao    },
611b5ff7f27SJin Yao    {
612b5ff7f27SJin Yao        "BriefDescription": "Cycles per thread when uops are executed in port 4",
613b5ff7f27SJin Yao        "EventCode": "0xA1",
614b5ff7f27SJin Yao        "EventName": "UOPS_DISPATCHED_PORT.PORT_4",
615b5ff7f27SJin Yao        "PublicDescription": "Counts, on the per-thread basis, cycles during which at least one uop is dispatched from the Reservation Station (RS) to port 4.",
616b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
617b5ff7f27SJin Yao        "UMask": "0x10"
618b5ff7f27SJin Yao    },
619b5ff7f27SJin Yao    {
620b5ff7f27SJin Yao        "BriefDescription": "Cycles per thread when uops are executed in port 5",
621b5ff7f27SJin Yao        "EventCode": "0xA1",
622b5ff7f27SJin Yao        "EventName": "UOPS_DISPATCHED_PORT.PORT_5",
623b5ff7f27SJin Yao        "PublicDescription": "Counts, on the per-thread basis, cycles during which at least one uop is dispatched from the Reservation Station (RS) to port 5.",
624b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
625b5ff7f27SJin Yao        "UMask": "0x20"
626b5ff7f27SJin Yao    },
627b5ff7f27SJin Yao    {
628b5ff7f27SJin Yao        "BriefDescription": "Cycles per thread when uops are executed in port 6",
629b5ff7f27SJin Yao        "EventCode": "0xA1",
630b5ff7f27SJin Yao        "EventName": "UOPS_DISPATCHED_PORT.PORT_6",
631b5ff7f27SJin Yao        "PublicDescription": "Counts, on the per-thread basis, cycles during which at least one uop is dispatched from the Reservation Station (RS) to port 6.",
632b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
633b5ff7f27SJin Yao        "UMask": "0x40"
634b5ff7f27SJin Yao    },
635b5ff7f27SJin Yao    {
636b5ff7f27SJin Yao        "BriefDescription": "Cycles per thread when uops are executed in port 7",
637b5ff7f27SJin Yao        "EventCode": "0xA1",
638b5ff7f27SJin Yao        "EventName": "UOPS_DISPATCHED_PORT.PORT_7",
639b5ff7f27SJin Yao        "PublicDescription": "Counts, on the per-thread basis, cycles during which at least one uop is dispatched from the Reservation Station (RS) to port 7.",
640b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
641b5ff7f27SJin Yao        "UMask": "0x80"
642b5ff7f27SJin Yao    },
643b5ff7f27SJin Yao    {
6442c72404eSJin Yao        "BriefDescription": "Number of uops executed on the core.",
645b5ff7f27SJin Yao        "EventCode": "0xB1",
6462c72404eSJin Yao        "EventName": "UOPS_EXECUTED.CORE",
6472c72404eSJin Yao        "PublicDescription": "Number of uops executed from any thread.",
648b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
649b5ff7f27SJin Yao        "UMask": "0x2"
650b5ff7f27SJin Yao    },
651b5ff7f27SJin Yao    {
652b5ff7f27SJin Yao        "BriefDescription": "Cycles at least 1 micro-op is executed from any thread on physical core.",
653b5ff7f27SJin Yao        "CounterMask": "1",
654b5ff7f27SJin Yao        "EventCode": "0xB1",
655b5ff7f27SJin Yao        "EventName": "UOPS_EXECUTED.CORE_CYCLES_GE_1",
656b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
657b5ff7f27SJin Yao        "UMask": "0x2"
658b5ff7f27SJin Yao    },
659b5ff7f27SJin Yao    {
6602c72404eSJin Yao        "BriefDescription": "Cycles at least 2 micro-op is executed from any thread on physical core.",
6612c72404eSJin Yao        "CounterMask": "2",
6622c72404eSJin Yao        "EventCode": "0xB1",
6632c72404eSJin Yao        "EventName": "UOPS_EXECUTED.CORE_CYCLES_GE_2",
6642c72404eSJin Yao        "SampleAfterValue": "2000003",
6652c72404eSJin Yao        "UMask": "0x2"
6662c72404eSJin Yao    },
6672c72404eSJin Yao    {
6682c72404eSJin Yao        "BriefDescription": "Cycles at least 3 micro-op is executed from any thread on physical core.",
6692c72404eSJin Yao        "CounterMask": "3",
6702c72404eSJin Yao        "EventCode": "0xB1",
6712c72404eSJin Yao        "EventName": "UOPS_EXECUTED.CORE_CYCLES_GE_3",
6722c72404eSJin Yao        "SampleAfterValue": "2000003",
6732c72404eSJin Yao        "UMask": "0x2"
6742c72404eSJin Yao    },
6752c72404eSJin Yao    {
676b5ff7f27SJin Yao        "BriefDescription": "Cycles at least 4 micro-op is executed from any thread on physical core.",
677b5ff7f27SJin Yao        "CounterMask": "4",
678b5ff7f27SJin Yao        "EventCode": "0xB1",
679b5ff7f27SJin Yao        "EventName": "UOPS_EXECUTED.CORE_CYCLES_GE_4",
680b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
681b5ff7f27SJin Yao        "UMask": "0x2"
682b5ff7f27SJin Yao    },
683b5ff7f27SJin Yao    {
6842c72404eSJin Yao        "BriefDescription": "Cycles with no micro-ops executed from any thread on physical core.",
6852c72404eSJin Yao        "CounterMask": "1",
6862c72404eSJin Yao        "EventCode": "0xB1",
6872c72404eSJin Yao        "EventName": "UOPS_EXECUTED.CORE_CYCLES_NONE",
6882c72404eSJin Yao        "Invert": "1",
689b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
6902c72404eSJin Yao        "UMask": "0x2"
691b5ff7f27SJin Yao    },
692b5ff7f27SJin Yao    {
6932c72404eSJin Yao        "BriefDescription": "Cycles where at least 1 uop was executed per-thread",
6942c72404eSJin Yao        "CounterMask": "1",
6952c72404eSJin Yao        "EventCode": "0xB1",
6962c72404eSJin Yao        "EventName": "UOPS_EXECUTED.CYCLES_GE_1_UOP_EXEC",
6972c72404eSJin Yao        "PublicDescription": "Cycles where at least 1 uop was executed per-thread.",
6982c72404eSJin Yao        "SampleAfterValue": "2000003",
6992c72404eSJin Yao        "UMask": "0x1"
700b5ff7f27SJin Yao    },
701b5ff7f27SJin Yao    {
7022c72404eSJin Yao        "BriefDescription": "Cycles where at least 2 uops were executed per-thread",
7032c72404eSJin Yao        "CounterMask": "2",
7042c72404eSJin Yao        "EventCode": "0xB1",
7052c72404eSJin Yao        "EventName": "UOPS_EXECUTED.CYCLES_GE_2_UOPS_EXEC",
7062c72404eSJin Yao        "PublicDescription": "Cycles where at least 2 uops were executed per-thread.",
7072c72404eSJin Yao        "SampleAfterValue": "2000003",
7082c72404eSJin Yao        "UMask": "0x1"
7092c72404eSJin Yao    },
7102c72404eSJin Yao    {
7112c72404eSJin Yao        "BriefDescription": "Cycles where at least 3 uops were executed per-thread",
7122c72404eSJin Yao        "CounterMask": "3",
7132c72404eSJin Yao        "EventCode": "0xB1",
7142c72404eSJin Yao        "EventName": "UOPS_EXECUTED.CYCLES_GE_3_UOPS_EXEC",
7152c72404eSJin Yao        "PublicDescription": "Cycles where at least 3 uops were executed per-thread.",
7162c72404eSJin Yao        "SampleAfterValue": "2000003",
7172c72404eSJin Yao        "UMask": "0x1"
7182c72404eSJin Yao    },
7192c72404eSJin Yao    {
7202c72404eSJin Yao        "BriefDescription": "Cycles where at least 4 uops were executed per-thread",
7212c72404eSJin Yao        "CounterMask": "4",
7222c72404eSJin Yao        "EventCode": "0xB1",
7232c72404eSJin Yao        "EventName": "UOPS_EXECUTED.CYCLES_GE_4_UOPS_EXEC",
7242c72404eSJin Yao        "PublicDescription": "Cycles where at least 4 uops were executed per-thread.",
7252c72404eSJin Yao        "SampleAfterValue": "2000003",
7262c72404eSJin Yao        "UMask": "0x1"
7272c72404eSJin Yao    },
7282c72404eSJin Yao    {
7292c72404eSJin Yao        "BriefDescription": "Counts number of cycles no uops were dispatched to be executed on this thread.",
7302c72404eSJin Yao        "CounterMask": "1",
7312c72404eSJin Yao        "EventCode": "0xB1",
7322c72404eSJin Yao        "EventName": "UOPS_EXECUTED.STALL_CYCLES",
7332c72404eSJin Yao        "Invert": "1",
7342c72404eSJin Yao        "PublicDescription": "Counts cycles during which no uops were dispatched from the Reservation Station (RS) per thread.",
7352c72404eSJin Yao        "SampleAfterValue": "2000003",
7362c72404eSJin Yao        "UMask": "0x1"
7372c72404eSJin Yao    },
7382c72404eSJin Yao    {
7392c72404eSJin Yao        "BriefDescription": "Counts the number of uops to be executed per-thread each cycle.",
7402c72404eSJin Yao        "EventCode": "0xB1",
7412c72404eSJin Yao        "EventName": "UOPS_EXECUTED.THREAD",
7422c72404eSJin Yao        "PublicDescription": "Number of uops to be executed per-thread each cycle.",
7432c72404eSJin Yao        "SampleAfterValue": "2000003",
7442c72404eSJin Yao        "UMask": "0x1"
7452c72404eSJin Yao    },
7462c72404eSJin Yao    {
7472c72404eSJin Yao        "BriefDescription": "Counts the number of x87 uops dispatched.",
7482c72404eSJin Yao        "EventCode": "0xB1",
7492c72404eSJin Yao        "EventName": "UOPS_EXECUTED.X87",
7502c72404eSJin Yao        "PublicDescription": "Counts the number of x87 uops executed.",
7512c72404eSJin Yao        "SampleAfterValue": "2000003",
7522c72404eSJin Yao        "UMask": "0x10"
7532c72404eSJin Yao    },
7542c72404eSJin Yao    {
7552c72404eSJin Yao        "BriefDescription": "Uops that Resource Allocation Table (RAT) issues to Reservation Station (RS)",
7562c72404eSJin Yao        "EventCode": "0x0E",
7572c72404eSJin Yao        "EventName": "UOPS_ISSUED.ANY",
7582c72404eSJin Yao        "PublicDescription": "Counts the number of uops that the Resource Allocation Table (RAT) issues to the Reservation Station (RS).",
7592c72404eSJin Yao        "SampleAfterValue": "2000003",
7602c72404eSJin Yao        "UMask": "0x1"
7612c72404eSJin Yao    },
7622c72404eSJin Yao    {
7632c72404eSJin Yao        "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.",
7642c72404eSJin Yao        "EventCode": "0x0E",
7652c72404eSJin Yao        "EventName": "UOPS_ISSUED.SLOW_LEA",
7662c72404eSJin Yao        "SampleAfterValue": "2000003",
7672c72404eSJin Yao        "UMask": "0x20"
7682c72404eSJin Yao    },
7692c72404eSJin Yao    {
7702c72404eSJin Yao        "BriefDescription": "Cycles when Resource Allocation Table (RAT) does not issue Uops to Reservation Station (RS) for the thread",
7712c72404eSJin Yao        "CounterMask": "1",
7722c72404eSJin Yao        "EventCode": "0x0E",
7732c72404eSJin Yao        "EventName": "UOPS_ISSUED.STALL_CYCLES",
7742c72404eSJin Yao        "Invert": "1",
7752c72404eSJin Yao        "PublicDescription": "Counts cycles during which the Resource Allocation Table (RAT) does not issue any Uops to the reservation station (RS) for the current thread.",
7762c72404eSJin Yao        "SampleAfterValue": "2000003",
7772c72404eSJin Yao        "UMask": "0x1"
7782c72404eSJin Yao    },
7792c72404eSJin Yao    {
7802c72404eSJin Yao        "BriefDescription": "Uops inserted at issue-stage in order to preserve upper bits of vector registers.",
7812c72404eSJin Yao        "EventCode": "0x0E",
7822c72404eSJin Yao        "EventName": "UOPS_ISSUED.VECTOR_WIDTH_MISMATCH",
7832c72404eSJin Yao        "PublicDescription": "Counts the number of Blend Uops issued by the Resource Allocation Table (RAT) to the reservation station (RS) in order to preserve upper bits of vector registers. Starting with the Skylake microarchitecture, these Blend uops are needed since every Intel SSE instruction executed in Dirty Upper State needs to preserve bits 128-255 of the destination register. For more information, refer to Mixing Intel AVX and Intel SSE Code section of the Optimization Guide.",
7842c72404eSJin Yao        "SampleAfterValue": "2000003",
7852c72404eSJin Yao        "UMask": "0x2"
7862c72404eSJin Yao    },
7872c72404eSJin Yao    {
7882c72404eSJin Yao        "BriefDescription": "Number of macro-fused uops retired. (non precise)",
7892c72404eSJin Yao        "EventCode": "0xc2",
7902c72404eSJin Yao        "EventName": "UOPS_RETIRED.MACRO_FUSED",
7912c72404eSJin Yao        "PublicDescription": "Counts the number of macro-fused uops retired. (non precise)",
7922c72404eSJin Yao        "SampleAfterValue": "2000003",
7932c72404eSJin Yao        "UMask": "0x4"
7942c72404eSJin Yao    },
7952c72404eSJin Yao    {
7962c72404eSJin Yao        "BriefDescription": "Retirement slots used.",
7972c72404eSJin Yao        "EventCode": "0xC2",
7982c72404eSJin Yao        "EventName": "UOPS_RETIRED.RETIRE_SLOTS",
7992c72404eSJin Yao        "PublicDescription": "Counts the retirement slots used.",
8002c72404eSJin Yao        "SampleAfterValue": "2000003",
8012c72404eSJin Yao        "UMask": "0x2"
802b5ff7f27SJin Yao    },
803b5ff7f27SJin Yao    {
804b5ff7f27SJin Yao        "BriefDescription": "Cycles without actually retired uops.",
805b5ff7f27SJin Yao        "CounterMask": "1",
806b5ff7f27SJin Yao        "EventCode": "0xC2",
807b5ff7f27SJin Yao        "EventName": "UOPS_RETIRED.STALL_CYCLES",
808b5ff7f27SJin Yao        "Invert": "1",
809b5ff7f27SJin Yao        "PublicDescription": "This event counts cycles without actually retired uops.",
810b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
811b5ff7f27SJin Yao        "UMask": "0x2"
812b5ff7f27SJin Yao    },
813b5ff7f27SJin Yao    {
8142c72404eSJin Yao        "BriefDescription": "Cycles with less than 10 actually retired uops.",
815e14fd2eeSIan Rogers        "CounterMask": "16",
816b5ff7f27SJin Yao        "EventCode": "0xC2",
8172c72404eSJin Yao        "EventName": "UOPS_RETIRED.TOTAL_CYCLES",
8182c72404eSJin Yao        "Invert": "1",
8192c72404eSJin Yao        "PublicDescription": "Number of cycles using always true condition (uops_ret < 16) applied to non PEBS uops retired event.",
820b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
821b5ff7f27SJin Yao        "UMask": "0x2"
822630171d4SAndi Kleen    }
823630171d4SAndi Kleen]
824