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    {
29b522c8afSIan Rogers        "BriefDescription": "Conditional branch instructions retired. [This event is alias to BR_INST_RETIRED.CONDITIONAL]",
30b522c8afSIan Rogers        "Errata": "SKL091",
31b522c8afSIan Rogers        "EventCode": "0xC4",
32b522c8afSIan Rogers        "EventName": "BR_INST_RETIRED.COND",
33b522c8afSIan Rogers        "PublicDescription": "This event counts conditional branch instructions retired. [This event is alias to BR_INST_RETIRED.CONDITIONAL]",
34b522c8afSIan Rogers        "SampleAfterValue": "400009",
35b522c8afSIan Rogers        "UMask": "0x1"
36b522c8afSIan Rogers    },
37b522c8afSIan Rogers    {
38b522c8afSIan Rogers        "BriefDescription": "Conditional branch instructions retired. [This event is alias to BR_INST_RETIRED.COND]",
392c72404eSJin Yao        "Errata": "SKL091",
402c72404eSJin Yao        "EventCode": "0xC4",
412c72404eSJin Yao        "EventName": "BR_INST_RETIRED.CONDITIONAL",
422c72404eSJin Yao        "PEBS": "1",
43b522c8afSIan Rogers        "PublicDescription": "This event counts conditional branch instructions retired. [This event is alias to BR_INST_RETIRED.COND]",
442c72404eSJin Yao        "SampleAfterValue": "400009",
45b5ff7f27SJin Yao        "UMask": "0x1"
4619f2d40cSAndi Kleen    },
4719f2d40cSAndi Kleen    {
482c72404eSJin Yao        "BriefDescription": "Not taken branch instructions retired.",
492c72404eSJin Yao        "Errata": "SKL091",
502c72404eSJin Yao        "EventCode": "0xc4",
512c72404eSJin Yao        "EventName": "BR_INST_RETIRED.COND_NTAKEN",
522c72404eSJin Yao        "PublicDescription": "This event counts not taken branch instructions retired.",
532c72404eSJin Yao        "SampleAfterValue": "400009",
542c72404eSJin Yao        "UMask": "0x10"
552c72404eSJin Yao    },
562c72404eSJin Yao    {
57b5ff7f27SJin Yao        "BriefDescription": "Far branch instructions retired.",
58b5ff7f27SJin Yao        "Errata": "SKL091",
59b5ff7f27SJin Yao        "EventCode": "0xC4",
60b5ff7f27SJin Yao        "EventName": "BR_INST_RETIRED.FAR_BRANCH",
61b5ff7f27SJin Yao        "PEBS": "1",
62b5ff7f27SJin Yao        "PublicDescription": "This event counts far branch instructions retired.",
63b5ff7f27SJin Yao        "SampleAfterValue": "100007",
64b5ff7f27SJin Yao        "UMask": "0x40"
6519f2d40cSAndi Kleen    },
6619f2d40cSAndi Kleen    {
672c72404eSJin Yao        "BriefDescription": "Direct and indirect near call instructions retired.",
682c72404eSJin Yao        "Errata": "SKL091",
692c72404eSJin Yao        "EventCode": "0xC4",
702c72404eSJin Yao        "EventName": "BR_INST_RETIRED.NEAR_CALL",
712c72404eSJin Yao        "PEBS": "1",
722c72404eSJin Yao        "PublicDescription": "This event counts both direct and indirect near call instructions retired.",
732c72404eSJin Yao        "SampleAfterValue": "100007",
742c72404eSJin Yao        "UMask": "0x2"
752c72404eSJin Yao    },
762c72404eSJin Yao    {
772c72404eSJin Yao        "BriefDescription": "Return instructions retired.",
782c72404eSJin Yao        "Errata": "SKL091",
792c72404eSJin Yao        "EventCode": "0xC4",
802c72404eSJin Yao        "EventName": "BR_INST_RETIRED.NEAR_RETURN",
812c72404eSJin Yao        "PEBS": "1",
822c72404eSJin Yao        "PublicDescription": "This event counts return instructions retired.",
832c72404eSJin Yao        "SampleAfterValue": "100007",
842c72404eSJin Yao        "UMask": "0x8"
852c72404eSJin Yao    },
862c72404eSJin Yao    {
872c72404eSJin Yao        "BriefDescription": "Taken branch instructions retired.",
882c72404eSJin Yao        "Errata": "SKL091",
892c72404eSJin Yao        "EventCode": "0xC4",
902c72404eSJin Yao        "EventName": "BR_INST_RETIRED.NEAR_TAKEN",
912c72404eSJin Yao        "PEBS": "1",
922c72404eSJin Yao        "PublicDescription": "This event counts taken branch instructions retired.",
932c72404eSJin Yao        "SampleAfterValue": "400009",
942c72404eSJin Yao        "UMask": "0x20"
952c72404eSJin Yao    },
962c72404eSJin Yao    {
972c72404eSJin Yao        "BriefDescription": "Not taken branch instructions retired.",
982c72404eSJin Yao        "Errata": "SKL091",
992c72404eSJin Yao        "EventCode": "0xC4",
1002c72404eSJin Yao        "EventName": "BR_INST_RETIRED.NOT_TAKEN",
1012c72404eSJin Yao        "PublicDescription": "This event counts not taken branch instructions retired.",
1022c72404eSJin Yao        "SampleAfterValue": "400009",
103b5ff7f27SJin Yao        "UMask": "0x10"
104630171d4SAndi Kleen    },
105630171d4SAndi Kleen    {
106100ee7c3SIan Rogers        "BriefDescription": "Speculative and retired mispredicted macro conditional branches",
107100ee7c3SIan Rogers        "EventCode": "0x89",
108100ee7c3SIan Rogers        "EventName": "BR_MISP_EXEC.ALL_BRANCHES",
109100ee7c3SIan Rogers        "PublicDescription": "This event counts both taken and not taken speculative and retired mispredicted branch instructions.",
110100ee7c3SIan Rogers        "SampleAfterValue": "200003",
111100ee7c3SIan Rogers        "UMask": "0xff"
112100ee7c3SIan Rogers    },
113100ee7c3SIan Rogers    {
114100ee7c3SIan Rogers        "BriefDescription": "Speculative mispredicted indirect branches",
115100ee7c3SIan Rogers        "EventCode": "0x89",
116100ee7c3SIan Rogers        "EventName": "BR_MISP_EXEC.INDIRECT",
117100ee7c3SIan Rogers        "PublicDescription": "Counts speculatively miss-predicted indirect branches at execution time. Counts for indirect near CALL or JMP instructions (RET excluded).",
118100ee7c3SIan Rogers        "SampleAfterValue": "200003",
119100ee7c3SIan Rogers        "UMask": "0xe4"
120100ee7c3SIan Rogers    },
121100ee7c3SIan Rogers    {
1222c72404eSJin Yao        "BriefDescription": "All mispredicted macro branch instructions retired.",
1232c72404eSJin Yao        "EventCode": "0xC5",
1242c72404eSJin Yao        "EventName": "BR_MISP_RETIRED.ALL_BRANCHES",
1252c72404eSJin 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.",
1262c72404eSJin Yao        "SampleAfterValue": "400009"
1272c72404eSJin Yao    },
1282c72404eSJin Yao    {
1292c72404eSJin Yao        "BriefDescription": "Mispredicted macro branch instructions retired.",
1302c72404eSJin Yao        "EventCode": "0xC5",
1312c72404eSJin Yao        "EventName": "BR_MISP_RETIRED.ALL_BRANCHES_PEBS",
1322c72404eSJin Yao        "PEBS": "2",
1332c72404eSJin Yao        "PublicDescription": "This is a precise version of BR_MISP_RETIRED.ALL_BRANCHES that counts all mispredicted macro branch instructions retired.",
1342c72404eSJin Yao        "SampleAfterValue": "400009",
1352c72404eSJin Yao        "UMask": "0x4"
1362c72404eSJin Yao    },
1372c72404eSJin Yao    {
1382c72404eSJin Yao        "BriefDescription": "Mispredicted conditional branch instructions retired.",
1392c72404eSJin Yao        "EventCode": "0xC5",
1402c72404eSJin Yao        "EventName": "BR_MISP_RETIRED.CONDITIONAL",
1412c72404eSJin Yao        "PEBS": "1",
1422c72404eSJin Yao        "PublicDescription": "This event counts mispredicted conditional branch instructions retired.",
1432c72404eSJin Yao        "SampleAfterValue": "400009",
144b5ff7f27SJin Yao        "UMask": "0x1"
145630171d4SAndi Kleen    },
146630171d4SAndi Kleen    {
147b5ff7f27SJin Yao        "BriefDescription": "Mispredicted direct and indirect near call instructions retired.",
148b5ff7f27SJin Yao        "EventCode": "0xC5",
149b5ff7f27SJin Yao        "EventName": "BR_MISP_RETIRED.NEAR_CALL",
150b5ff7f27SJin Yao        "PEBS": "1",
151b5ff7f27SJin Yao        "PublicDescription": "Counts both taken and not taken retired mispredicted direct and indirect near calls, including both register and memory indirect.",
152b5ff7f27SJin Yao        "SampleAfterValue": "400009",
153b5ff7f27SJin Yao        "UMask": "0x2"
154b5ff7f27SJin Yao    },
155b5ff7f27SJin Yao    {
1562c72404eSJin Yao        "BriefDescription": "Number of near branch instructions retired that were mispredicted and taken.",
1572c72404eSJin Yao        "EventCode": "0xC5",
1582c72404eSJin Yao        "EventName": "BR_MISP_RETIRED.NEAR_TAKEN",
1592c72404eSJin Yao        "PEBS": "1",
1602c72404eSJin Yao        "SampleAfterValue": "400009",
161b5ff7f27SJin Yao        "UMask": "0x20"
162b5ff7f27SJin Yao    },
163b5ff7f27SJin Yao    {
16459fd7d32SIan Rogers        "BriefDescription": "This event counts the number of mispredicted ret instructions retired. Non PEBS",
16559fd7d32SIan Rogers        "EventCode": "0xC5",
16659fd7d32SIan Rogers        "EventName": "BR_MISP_RETIRED.RET",
16759fd7d32SIan Rogers        "PEBS": "1",
16859fd7d32SIan Rogers        "PublicDescription": "This is a non-precise version (that is, does not use PEBS) of the event that counts mispredicted return instructions retired.",
16959fd7d32SIan Rogers        "SampleAfterValue": "100007",
17059fd7d32SIan Rogers        "UMask": "0x8"
17159fd7d32SIan Rogers    },
17259fd7d32SIan Rogers    {
1732c72404eSJin Yao        "BriefDescription": "Core crystal clock cycles when this thread is unhalted and the other thread is halted.",
1742c72404eSJin Yao        "EventCode": "0x3C",
1752c72404eSJin Yao        "EventName": "CPU_CLK_THREAD_UNHALTED.ONE_THREAD_ACTIVE",
1762c72404eSJin Yao        "SampleAfterValue": "25003",
1772c72404eSJin Yao        "UMask": "0x2"
1782c72404eSJin Yao    },
1792c72404eSJin Yao    {
1802c72404eSJin Yao        "BriefDescription": "Core crystal clock cycles when the thread is unhalted.",
1812c72404eSJin Yao        "EventCode": "0x3C",
1822c72404eSJin Yao        "EventName": "CPU_CLK_THREAD_UNHALTED.REF_XCLK",
1832c72404eSJin Yao        "SampleAfterValue": "25003",
1842c72404eSJin Yao        "UMask": "0x1"
1852c72404eSJin Yao    },
1862c72404eSJin Yao    {
1872c72404eSJin Yao        "AnyThread": "1",
1882c72404eSJin Yao        "BriefDescription": "Core crystal clock cycles when at least one thread on the physical core is unhalted.",
1892c72404eSJin Yao        "EventCode": "0x3C",
1902c72404eSJin Yao        "EventName": "CPU_CLK_THREAD_UNHALTED.REF_XCLK_ANY",
1912c72404eSJin Yao        "SampleAfterValue": "25003",
1922c72404eSJin Yao        "UMask": "0x1"
1932c72404eSJin Yao    },
1942c72404eSJin Yao    {
1952c72404eSJin Yao        "BriefDescription": "Core crystal clock cycles when this thread is unhalted and the other thread is halted.",
1962c72404eSJin Yao        "EventCode": "0x3C",
1972c72404eSJin Yao        "EventName": "CPU_CLK_UNHALTED.ONE_THREAD_ACTIVE",
1982c72404eSJin Yao        "SampleAfterValue": "25003",
1992c72404eSJin Yao        "UMask": "0x2"
2002c72404eSJin Yao    },
2012c72404eSJin Yao    {
2022c72404eSJin Yao        "BriefDescription": "Reference cycles when the core is not in halt state.",
2032c72404eSJin Yao        "EventName": "CPU_CLK_UNHALTED.REF_TSC",
2042c72404eSJin 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.",
2052c72404eSJin Yao        "SampleAfterValue": "2000003",
2062c72404eSJin Yao        "UMask": "0x3"
2072c72404eSJin Yao    },
2082c72404eSJin Yao    {
2092c72404eSJin Yao        "BriefDescription": "Core crystal clock cycles when the thread is unhalted.",
2102c72404eSJin Yao        "EventCode": "0x3C",
2112c72404eSJin Yao        "EventName": "CPU_CLK_UNHALTED.REF_XCLK",
2122c72404eSJin Yao        "SampleAfterValue": "25003",
2132c72404eSJin Yao        "UMask": "0x1"
2142c72404eSJin Yao    },
2152c72404eSJin Yao    {
2162c72404eSJin Yao        "AnyThread": "1",
2172c72404eSJin Yao        "BriefDescription": "Core crystal clock cycles when at least one thread on the physical core is unhalted.",
2182c72404eSJin Yao        "EventCode": "0x3C",
2192c72404eSJin Yao        "EventName": "CPU_CLK_UNHALTED.REF_XCLK_ANY",
2202c72404eSJin Yao        "SampleAfterValue": "25003",
2212c72404eSJin Yao        "UMask": "0x1"
2222c72404eSJin Yao    },
2232c72404eSJin Yao    {
2242c72404eSJin Yao        "BriefDescription": "Counts when there is a transition from ring 1, 2 or 3 to ring 0.",
2252c72404eSJin Yao        "CounterMask": "1",
2262c72404eSJin Yao        "EdgeDetect": "1",
2272c72404eSJin Yao        "EventCode": "0x3C",
2282c72404eSJin Yao        "EventName": "CPU_CLK_UNHALTED.RING0_TRANS",
2292c72404eSJin Yao        "PublicDescription": "Counts when the Current Privilege Level (CPL) transitions from ring 1, 2 or 3 to ring 0 (Kernel).",
2302c72404eSJin Yao        "SampleAfterValue": "100007"
2312c72404eSJin Yao    },
2322c72404eSJin Yao    {
2332c72404eSJin Yao        "BriefDescription": "Core cycles when the thread is not in halt state",
2342c72404eSJin Yao        "EventName": "CPU_CLK_UNHALTED.THREAD",
2352c72404eSJin 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.",
2362c72404eSJin Yao        "SampleAfterValue": "2000003",
2372c72404eSJin Yao        "UMask": "0x2"
2382c72404eSJin Yao    },
2392c72404eSJin Yao    {
2402c72404eSJin Yao        "AnyThread": "1",
2412c72404eSJin Yao        "BriefDescription": "Core cycles when at least one thread on the physical core is not in halt state.",
2422c72404eSJin Yao        "EventName": "CPU_CLK_UNHALTED.THREAD_ANY",
243630171d4SAndi Kleen        "SampleAfterValue": "2000003",
244b5ff7f27SJin Yao        "UMask": "0x2"
245630171d4SAndi Kleen    },
246630171d4SAndi Kleen    {
247b5ff7f27SJin Yao        "BriefDescription": "Thread cycles when thread is not in halt state",
248b5ff7f27SJin Yao        "EventCode": "0x3C",
249b5ff7f27SJin Yao        "EventName": "CPU_CLK_UNHALTED.THREAD_P",
250b5ff7f27SJin 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.",
251b5ff7f27SJin Yao        "SampleAfterValue": "2000003"
25219f2d40cSAndi Kleen    },
25319f2d40cSAndi Kleen    {
2542c72404eSJin Yao        "AnyThread": "1",
2552c72404eSJin Yao        "BriefDescription": "Core cycles when at least one thread on the physical core is not in halt state.",
2562c72404eSJin Yao        "EventCode": "0x3C",
2572c72404eSJin Yao        "EventName": "CPU_CLK_UNHALTED.THREAD_P_ANY",
2582c72404eSJin Yao        "SampleAfterValue": "2000003"
2592c72404eSJin Yao    },
2602c72404eSJin Yao    {
2612c72404eSJin Yao        "BriefDescription": "Cycles while L1 cache miss demand load is outstanding.",
2622c72404eSJin Yao        "CounterMask": "8",
2632c72404eSJin Yao        "EventCode": "0xA3",
2642c72404eSJin Yao        "EventName": "CYCLE_ACTIVITY.CYCLES_L1D_MISS",
2652c72404eSJin Yao        "SampleAfterValue": "2000003",
2662c72404eSJin Yao        "UMask": "0x8"
2672c72404eSJin Yao    },
2682c72404eSJin Yao    {
2692c72404eSJin Yao        "BriefDescription": "Cycles while L2 cache miss demand load is outstanding.",
2702c72404eSJin Yao        "CounterMask": "1",
2712c72404eSJin Yao        "EventCode": "0xA3",
2722c72404eSJin Yao        "EventName": "CYCLE_ACTIVITY.CYCLES_L2_MISS",
27319f2d40cSAndi Kleen        "SampleAfterValue": "2000003",
274b5ff7f27SJin Yao        "UMask": "0x1"
27519f2d40cSAndi Kleen    },
27619f2d40cSAndi Kleen    {
2772c72404eSJin Yao        "BriefDescription": "Cycles while memory subsystem has an outstanding load.",
2782c72404eSJin Yao        "CounterMask": "16",
2792c72404eSJin Yao        "EventCode": "0xA3",
2802c72404eSJin Yao        "EventName": "CYCLE_ACTIVITY.CYCLES_MEM_ANY",
2812c72404eSJin Yao        "SampleAfterValue": "2000003",
2822c72404eSJin Yao        "UMask": "0x10"
2832c72404eSJin Yao    },
2842c72404eSJin Yao    {
2852c72404eSJin Yao        "BriefDescription": "Execution stalls while L1 cache miss demand load is outstanding.",
2862c72404eSJin Yao        "CounterMask": "12",
2872c72404eSJin Yao        "EventCode": "0xA3",
2882c72404eSJin Yao        "EventName": "CYCLE_ACTIVITY.STALLS_L1D_MISS",
2892c72404eSJin Yao        "SampleAfterValue": "2000003",
2902c72404eSJin Yao        "UMask": "0xc"
2912c72404eSJin Yao    },
2922c72404eSJin Yao    {
2932c72404eSJin Yao        "BriefDescription": "Execution stalls while L2 cache miss demand load is outstanding.",
2942c72404eSJin Yao        "CounterMask": "5",
2952c72404eSJin Yao        "EventCode": "0xA3",
2962c72404eSJin Yao        "EventName": "CYCLE_ACTIVITY.STALLS_L2_MISS",
2972c72404eSJin Yao        "SampleAfterValue": "2000003",
2982c72404eSJin Yao        "UMask": "0x5"
2992c72404eSJin Yao    },
3002c72404eSJin Yao    {
3012c72404eSJin Yao        "BriefDescription": "Execution stalls while memory subsystem has an outstanding load.",
3022c72404eSJin Yao        "CounterMask": "20",
3032c72404eSJin Yao        "EventCode": "0xA3",
3042c72404eSJin Yao        "EventName": "CYCLE_ACTIVITY.STALLS_MEM_ANY",
3052c72404eSJin Yao        "SampleAfterValue": "2000003",
3062c72404eSJin Yao        "UMask": "0x14"
3072c72404eSJin Yao    },
3082c72404eSJin Yao    {
3092c72404eSJin Yao        "BriefDescription": "Total execution stalls.",
3102c72404eSJin Yao        "CounterMask": "4",
3112c72404eSJin Yao        "EventCode": "0xA3",
3122c72404eSJin Yao        "EventName": "CYCLE_ACTIVITY.STALLS_TOTAL",
3132c72404eSJin Yao        "SampleAfterValue": "2000003",
3142c72404eSJin Yao        "UMask": "0x4"
3152c72404eSJin Yao    },
3162c72404eSJin Yao    {
3172c72404eSJin Yao        "BriefDescription": "Cycles total of 1 uop is executed on all ports and Reservation Station was not empty.",
3182c72404eSJin Yao        "EventCode": "0xA6",
3192c72404eSJin Yao        "EventName": "EXE_ACTIVITY.1_PORTS_UTIL",
3202c72404eSJin Yao        "PublicDescription": "Counts cycles during which a total of 1 uop was executed on all ports and Reservation Station (RS) was not empty.",
3212c72404eSJin Yao        "SampleAfterValue": "2000003",
3222c72404eSJin Yao        "UMask": "0x2"
3232c72404eSJin Yao    },
3242c72404eSJin Yao    {
3252c72404eSJin Yao        "BriefDescription": "Cycles total of 2 uops are executed on all ports and Reservation Station was not empty.",
3262c72404eSJin Yao        "EventCode": "0xA6",
3272c72404eSJin Yao        "EventName": "EXE_ACTIVITY.2_PORTS_UTIL",
3282c72404eSJin Yao        "PublicDescription": "Counts cycles during which a total of 2 uops were executed on all ports and Reservation Station (RS) was not empty.",
3292c72404eSJin Yao        "SampleAfterValue": "2000003",
3302c72404eSJin Yao        "UMask": "0x4"
3312c72404eSJin Yao    },
3322c72404eSJin Yao    {
3332c72404eSJin Yao        "BriefDescription": "Cycles total of 3 uops are executed on all ports and Reservation Station was not empty.",
3342c72404eSJin Yao        "EventCode": "0xA6",
3352c72404eSJin Yao        "EventName": "EXE_ACTIVITY.3_PORTS_UTIL",
3362c72404eSJin Yao        "PublicDescription": "Cycles total of 3 uops are executed on all ports and Reservation Station (RS) was not empty.",
3372c72404eSJin Yao        "SampleAfterValue": "2000003",
3382c72404eSJin Yao        "UMask": "0x8"
3392c72404eSJin Yao    },
3402c72404eSJin Yao    {
3412c72404eSJin Yao        "BriefDescription": "Cycles total of 4 uops are executed on all ports and Reservation Station was not empty.",
3422c72404eSJin Yao        "EventCode": "0xA6",
3432c72404eSJin Yao        "EventName": "EXE_ACTIVITY.4_PORTS_UTIL",
3442c72404eSJin Yao        "PublicDescription": "Cycles total of 4 uops are executed on all ports and Reservation Station (RS) was not empty.",
3452c72404eSJin Yao        "SampleAfterValue": "2000003",
3462c72404eSJin Yao        "UMask": "0x10"
3472c72404eSJin Yao    },
3482c72404eSJin Yao    {
3492c72404eSJin Yao        "BriefDescription": "Cycles where the Store Buffer was full and no outstanding load.",
3502c72404eSJin Yao        "EventCode": "0xA6",
3512c72404eSJin Yao        "EventName": "EXE_ACTIVITY.BOUND_ON_STORES",
3522c72404eSJin Yao        "SampleAfterValue": "2000003",
3532c72404eSJin Yao        "UMask": "0x40"
3542c72404eSJin Yao    },
3552c72404eSJin Yao    {
3562c72404eSJin 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.",
3572c72404eSJin Yao        "EventCode": "0xA6",
3582c72404eSJin Yao        "EventName": "EXE_ACTIVITY.EXE_BOUND_0_PORTS",
3592c72404eSJin Yao        "PublicDescription": "Counts cycles during which no uops were executed on all ports and Reservation Station (RS) was not empty.",
3602c72404eSJin Yao        "SampleAfterValue": "2000003",
3612c72404eSJin Yao        "UMask": "0x1"
3622c72404eSJin Yao    },
3632c72404eSJin Yao    {
364*b5d2644dSIan Rogers        "BriefDescription": "Stalls caused by changing prefix length of the instruction. [This event is alias to DECODE.LCP]",
3652c72404eSJin Yao        "EventCode": "0x87",
3662c72404eSJin Yao        "EventName": "ILD_STALL.LCP",
367*b5d2644dSIan Rogers        "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. [This event is alias to DECODE.LCP]",
3682c72404eSJin Yao        "SampleAfterValue": "2000003",
3692c72404eSJin Yao        "UMask": "0x1"
3702c72404eSJin Yao    },
3712c72404eSJin Yao    {
372e14fd2eeSIan Rogers        "BriefDescription": "Instruction decoders utilized in a cycle",
373e14fd2eeSIan Rogers        "EventCode": "0x55",
374e14fd2eeSIan Rogers        "EventName": "INST_DECODED.DECODERS",
375e14fd2eeSIan Rogers        "PublicDescription": "Number of decoders utilized in a cycle when the MITE (legacy decode pipeline) fetches instructions.",
376e14fd2eeSIan Rogers        "SampleAfterValue": "2000003",
377e14fd2eeSIan Rogers        "UMask": "0x1"
378e14fd2eeSIan Rogers    },
379e14fd2eeSIan Rogers    {
3802c72404eSJin Yao        "BriefDescription": "Instructions retired from execution.",
3812c72404eSJin Yao        "EventName": "INST_RETIRED.ANY",
3822c72404eSJin 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.",
3832c72404eSJin Yao        "SampleAfterValue": "2000003",
3842c72404eSJin Yao        "UMask": "0x1"
3852c72404eSJin Yao    },
3862c72404eSJin Yao    {
3872c72404eSJin Yao        "BriefDescription": "Number of instructions retired. General Counter - architectural event",
3882c72404eSJin Yao        "Errata": "SKL091, SKL044",
3892c72404eSJin Yao        "EventCode": "0xC0",
3902c72404eSJin Yao        "EventName": "INST_RETIRED.ANY_P",
3912c72404eSJin Yao        "PublicDescription": "Counts the number of instructions (EOMs) retired. Counting covers macro-fused instructions individually (that is, increments by two).",
3922c72404eSJin Yao        "SampleAfterValue": "2000003"
3932c72404eSJin Yao    },
3942c72404eSJin Yao    {
3953bad20d7SIan Rogers        "BriefDescription": "Number of all retired NOP instructions.",
3963bad20d7SIan Rogers        "Errata": "SKL091, SKL044",
3973bad20d7SIan Rogers        "EventCode": "0xC0",
3983bad20d7SIan Rogers        "EventName": "INST_RETIRED.NOP",
3993bad20d7SIan Rogers        "PEBS": "1",
4003bad20d7SIan Rogers        "SampleAfterValue": "2000003",
4013bad20d7SIan Rogers        "UMask": "0x2"
4023bad20d7SIan Rogers    },
4033bad20d7SIan Rogers    {
4042c72404eSJin Yao        "BriefDescription": "Precise instruction retired event with HW to reduce effect of PEBS shadow in IP distribution",
4052c72404eSJin Yao        "Errata": "SKL091, SKL044",
4062c72404eSJin Yao        "EventCode": "0xC0",
4072c72404eSJin Yao        "EventName": "INST_RETIRED.PREC_DIST",
4082c72404eSJin Yao        "PEBS": "2",
4092c72404eSJin 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.",
4102c72404eSJin Yao        "SampleAfterValue": "2000003",
4112c72404eSJin Yao        "UMask": "0x1"
4122c72404eSJin Yao    },
4132c72404eSJin Yao    {
4142c72404eSJin Yao        "BriefDescription": "Number of cycles using always true condition applied to  PEBS instructions retired event.",
4152c72404eSJin Yao        "CounterMask": "10",
4162c72404eSJin Yao        "Errata": "SKL091, SKL044",
4172c72404eSJin Yao        "EventCode": "0xC0",
4182c72404eSJin Yao        "EventName": "INST_RETIRED.TOTAL_CYCLES_PS",
4192c72404eSJin Yao        "Invert": "1",
4202c72404eSJin Yao        "PEBS": "2",
4212c72404eSJin Yao        "PublicDescription": "Number of cycles using an always true condition applied to  PEBS instructions retired event. (inst_ret< 16)",
4222c72404eSJin Yao        "SampleAfterValue": "2000003",
4232c72404eSJin Yao        "UMask": "0x1"
4242c72404eSJin Yao    },
4252c72404eSJin Yao    {
426b522c8afSIan Rogers        "BriefDescription": "Clears speculative count",
427b522c8afSIan Rogers        "CounterMask": "1",
428b522c8afSIan Rogers        "EdgeDetect": "1",
429b522c8afSIan Rogers        "EventCode": "0x0D",
430b522c8afSIan Rogers        "EventName": "INT_MISC.CLEARS_COUNT",
431b522c8afSIan Rogers        "PublicDescription": "Counts the number of speculative clears due to any type of branch misprediction or machine clears",
432b522c8afSIan Rogers        "SampleAfterValue": "2000003",
433b522c8afSIan Rogers        "UMask": "0x1"
434b522c8afSIan Rogers    },
435b522c8afSIan Rogers    {
4362c72404eSJin Yao        "BriefDescription": "Cycles the issue-stage is waiting for front-end to fetch from resteered path following branch misprediction or machine clear events.",
4372c72404eSJin Yao        "EventCode": "0x0D",
4382c72404eSJin Yao        "EventName": "INT_MISC.CLEAR_RESTEER_CYCLES",
4392c72404eSJin Yao        "SampleAfterValue": "2000003",
4402c72404eSJin Yao        "UMask": "0x80"
4412c72404eSJin Yao    },
4422c72404eSJin Yao    {
4432c72404eSJin Yao        "BriefDescription": "Core cycles the allocator was stalled due to recovery from earlier clear event for this thread (e.g. misprediction or memory nuke)",
4442c72404eSJin Yao        "EventCode": "0x0D",
4452c72404eSJin Yao        "EventName": "INT_MISC.RECOVERY_CYCLES",
4462c72404eSJin Yao        "PublicDescription": "Core cycles the Resource allocator was stalled due to recovery from an earlier branch misprediction or machine clear event.",
4472c72404eSJin Yao        "SampleAfterValue": "2000003",
4482c72404eSJin Yao        "UMask": "0x1"
4492c72404eSJin Yao    },
4502c72404eSJin Yao    {
4512c72404eSJin Yao        "AnyThread": "1",
4522c72404eSJin 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).",
4532c72404eSJin Yao        "EventCode": "0x0D",
4542c72404eSJin Yao        "EventName": "INT_MISC.RECOVERY_CYCLES_ANY",
4552c72404eSJin Yao        "SampleAfterValue": "2000003",
4562c72404eSJin Yao        "UMask": "0x1"
4572c72404eSJin Yao    },
4582c72404eSJin Yao    {
4592c72404eSJin Yao        "BriefDescription": "The number of times that split load operations are temporarily blocked because all resources for handling the split accesses are in use",
4602c72404eSJin Yao        "EventCode": "0x03",
4612c72404eSJin Yao        "EventName": "LD_BLOCKS.NO_SR",
4622c72404eSJin Yao        "PublicDescription": "The number of times that split load operations are temporarily blocked because all resources for handling the split accesses are in use.",
4632c72404eSJin Yao        "SampleAfterValue": "100003",
4642c72404eSJin Yao        "UMask": "0x8"
4652c72404eSJin Yao    },
4662c72404eSJin Yao    {
4672c72404eSJin Yao        "BriefDescription": "Loads blocked due to overlapping with a preceding store that cannot be forwarded.",
4682c72404eSJin Yao        "EventCode": "0x03",
4692c72404eSJin Yao        "EventName": "LD_BLOCKS.STORE_FORWARD",
4702c72404eSJin 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.",
4712c72404eSJin Yao        "SampleAfterValue": "100003",
4722c72404eSJin Yao        "UMask": "0x2"
4732c72404eSJin Yao    },
4742c72404eSJin Yao    {
4752c72404eSJin Yao        "BriefDescription": "False dependencies in MOB due to partial compare on address.",
4762c72404eSJin Yao        "EventCode": "0x07",
4772c72404eSJin Yao        "EventName": "LD_BLOCKS_PARTIAL.ADDRESS_ALIAS",
4782c72404eSJin 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.",
4792c72404eSJin Yao        "SampleAfterValue": "100003",
4802c72404eSJin Yao        "UMask": "0x1"
4812c72404eSJin Yao    },
4822c72404eSJin Yao    {
4832c72404eSJin Yao        "BriefDescription": "Demand load dispatches that hit L1D fill buffer (FB) allocated for software prefetch.",
4842c72404eSJin Yao        "EventCode": "0x4C",
4852c72404eSJin Yao        "EventName": "LOAD_HIT_PRE.SW_PF",
4862c72404eSJin 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.",
4872c72404eSJin Yao        "SampleAfterValue": "100003",
4882c72404eSJin Yao        "UMask": "0x1"
4892c72404eSJin Yao    },
4902c72404eSJin Yao    {
491*b5d2644dSIan Rogers        "BriefDescription": "Cycles 4 Uops delivered by the LSD, but didn't come from the decoder. [This event is alias to LSD.CYCLES_OK]",
4922c72404eSJin Yao        "CounterMask": "4",
4932c72404eSJin Yao        "EventCode": "0xA8",
4942c72404eSJin Yao        "EventName": "LSD.CYCLES_4_UOPS",
495*b5d2644dSIan Rogers        "PublicDescription": "Counts the cycles when 4 uops are delivered by the LSD (Loop-stream detector). [This event is alias to LSD.CYCLES_OK]",
4962c72404eSJin Yao        "SampleAfterValue": "2000003",
4972c72404eSJin Yao        "UMask": "0x1"
4982c72404eSJin Yao    },
4992c72404eSJin Yao    {
5002c72404eSJin Yao        "BriefDescription": "Cycles Uops delivered by the LSD, but didn't come from the decoder.",
5012c72404eSJin Yao        "CounterMask": "1",
5022c72404eSJin Yao        "EventCode": "0xA8",
5032c72404eSJin Yao        "EventName": "LSD.CYCLES_ACTIVE",
5042c72404eSJin Yao        "PublicDescription": "Counts the cycles when at least one uop is delivered by the LSD (Loop-stream detector).",
5052c72404eSJin Yao        "SampleAfterValue": "2000003",
5062c72404eSJin Yao        "UMask": "0x1"
5072c72404eSJin Yao    },
5082c72404eSJin Yao    {
509*b5d2644dSIan Rogers        "BriefDescription": "Cycles 4 Uops delivered by the LSD, but didn't come from the decoder. [This event is alias to LSD.CYCLES_4_UOPS]",
510*b5d2644dSIan Rogers        "CounterMask": "4",
511*b5d2644dSIan Rogers        "EventCode": "0xA8",
512*b5d2644dSIan Rogers        "EventName": "LSD.CYCLES_OK",
513*b5d2644dSIan Rogers        "PublicDescription": "Counts the cycles when 4 uops are delivered by the LSD (Loop-stream detector). [This event is alias to LSD.CYCLES_4_UOPS]",
514*b5d2644dSIan Rogers        "SampleAfterValue": "2000003",
515*b5d2644dSIan Rogers        "UMask": "0x1"
516*b5d2644dSIan Rogers    },
517*b5d2644dSIan Rogers    {
5182c72404eSJin Yao        "BriefDescription": "Number of Uops delivered by the LSD.",
5192c72404eSJin Yao        "EventCode": "0xA8",
5202c72404eSJin Yao        "EventName": "LSD.UOPS",
5212c72404eSJin Yao        "PublicDescription": "Number of uops delivered to the back-end by the LSD(Loop Stream Detector).",
5222c72404eSJin Yao        "SampleAfterValue": "2000003",
523b5ff7f27SJin Yao        "UMask": "0x1"
524b5ff7f27SJin Yao    },
525b5ff7f27SJin Yao    {
526630171d4SAndi Kleen        "BriefDescription": "Number of machine clears (nukes) of any type.",
527630171d4SAndi Kleen        "CounterMask": "1",
528b5ff7f27SJin Yao        "EdgeDetect": "1",
529b5ff7f27SJin Yao        "EventCode": "0xC3",
530b5ff7f27SJin Yao        "EventName": "MACHINE_CLEARS.COUNT",
531630171d4SAndi Kleen        "SampleAfterValue": "100003",
532b5ff7f27SJin Yao        "UMask": "0x1"
533630171d4SAndi Kleen    },
534630171d4SAndi Kleen    {
5352c72404eSJin Yao        "BriefDescription": "Self-modifying code (SMC) detected.",
5362c72404eSJin Yao        "EventCode": "0xC3",
5372c72404eSJin Yao        "EventName": "MACHINE_CLEARS.SMC",
5382c72404eSJin Yao        "PublicDescription": "Counts self-modifying code (SMC) detected, which causes a machine clear.",
5392c72404eSJin Yao        "SampleAfterValue": "100003",
5402c72404eSJin Yao        "UMask": "0x4"
5412c72404eSJin Yao    },
5422c72404eSJin Yao    {
5432c72404eSJin 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.",
5442c72404eSJin Yao        "EventCode": "0xC1",
5452c72404eSJin Yao        "EventName": "OTHER_ASSISTS.ANY",
5462c72404eSJin Yao        "SampleAfterValue": "100003",
5472c72404eSJin Yao        "UMask": "0x3f"
5482c72404eSJin Yao    },
5492c72404eSJin Yao    {
5502c72404eSJin Yao        "BriefDescription": "Cycles where the pipeline is stalled due to serializing operations.",
5512c72404eSJin Yao        "EventCode": "0x59",
5522c72404eSJin Yao        "EventName": "PARTIAL_RAT_STALLS.SCOREBOARD",
5532c72404eSJin Yao        "PublicDescription": "This event counts cycles during which the microcode scoreboard stalls happen.",
554b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
555b5ff7f27SJin Yao        "UMask": "0x1"
556b5ff7f27SJin Yao    },
557b5ff7f27SJin Yao    {
5582c72404eSJin Yao        "BriefDescription": "Resource-related stall cycles",
5592c72404eSJin Yao        "EventCode": "0xa2",
5602c72404eSJin Yao        "EventName": "RESOURCE_STALLS.ANY",
5612c72404eSJin Yao        "PublicDescription": "Counts resource-related stall cycles.",
562b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
563b5ff7f27SJin Yao        "UMask": "0x1"
564b5ff7f27SJin Yao    },
565b5ff7f27SJin Yao    {
5662c72404eSJin Yao        "BriefDescription": "Cycles stalled due to no store buffers available. (not including draining form sync).",
5672c72404eSJin Yao        "EventCode": "0xA2",
5682c72404eSJin Yao        "EventName": "RESOURCE_STALLS.SB",
5692c72404eSJin 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.",
570b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
571b5ff7f27SJin Yao        "UMask": "0x8"
572b5ff7f27SJin Yao    },
573b5ff7f27SJin Yao    {
5742c72404eSJin Yao        "BriefDescription": "Increments whenever there is an update to the LBR array.",
5752c72404eSJin Yao        "EventCode": "0xCC",
5762c72404eSJin Yao        "EventName": "ROB_MISC_EVENTS.LBR_INSERTS",
5772c72404eSJin 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.",
5782c72404eSJin Yao        "SampleAfterValue": "2000003",
5792c72404eSJin Yao        "UMask": "0x20"
5802c72404eSJin Yao    },
5812c72404eSJin Yao    {
5822c72404eSJin 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.",
5832c72404eSJin Yao        "EventCode": "0xCC",
5842c72404eSJin Yao        "EventName": "ROB_MISC_EVENTS.PAUSE_INST",
5852c72404eSJin Yao        "SampleAfterValue": "2000003",
5862c72404eSJin Yao        "UMask": "0x40"
5872c72404eSJin Yao    },
5882c72404eSJin Yao    {
5892c72404eSJin Yao        "BriefDescription": "Cycles when Reservation Station (RS) is empty for the thread",
5902c72404eSJin Yao        "EventCode": "0x5E",
5912c72404eSJin Yao        "EventName": "RS_EVENTS.EMPTY_CYCLES",
5922c72404eSJin 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.",
5932c72404eSJin Yao        "SampleAfterValue": "2000003",
5942c72404eSJin Yao        "UMask": "0x1"
5952c72404eSJin Yao    },
5962c72404eSJin Yao    {
5972c72404eSJin Yao        "BriefDescription": "Counts end of periods where the Reservation Station (RS) was empty. Could be useful to precisely locate Frontend Latency Bound issues.",
598b5ff7f27SJin Yao        "CounterMask": "1",
5992c72404eSJin Yao        "EdgeDetect": "1",
6002c72404eSJin Yao        "EventCode": "0x5E",
6012c72404eSJin Yao        "EventName": "RS_EVENTS.EMPTY_END",
6022c72404eSJin Yao        "Invert": "1",
6032c72404eSJin Yao        "PublicDescription": "Counts end of periods where the Reservation Station (RS) was empty. Could be useful to precisely locate front-end Latency Bound issues.",
604b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
605b5ff7f27SJin Yao        "UMask": "0x1"
606b5ff7f27SJin Yao    },
607b5ff7f27SJin Yao    {
608b5ff7f27SJin Yao        "BriefDescription": "Cycles per thread when uops are executed in port 0",
609b5ff7f27SJin Yao        "EventCode": "0xA1",
610b5ff7f27SJin Yao        "EventName": "UOPS_DISPATCHED_PORT.PORT_0",
611b5ff7f27SJin 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.",
612b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
613b5ff7f27SJin Yao        "UMask": "0x1"
614b5ff7f27SJin Yao    },
615b5ff7f27SJin Yao    {
616b5ff7f27SJin Yao        "BriefDescription": "Cycles per thread when uops are executed in port 1",
617b5ff7f27SJin Yao        "EventCode": "0xA1",
618b5ff7f27SJin Yao        "EventName": "UOPS_DISPATCHED_PORT.PORT_1",
619b5ff7f27SJin 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.",
620b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
621b5ff7f27SJin Yao        "UMask": "0x2"
622b5ff7f27SJin Yao    },
623b5ff7f27SJin Yao    {
624b5ff7f27SJin Yao        "BriefDescription": "Cycles per thread when uops are executed in port 2",
625b5ff7f27SJin Yao        "EventCode": "0xA1",
626b5ff7f27SJin Yao        "EventName": "UOPS_DISPATCHED_PORT.PORT_2",
627b5ff7f27SJin 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.",
628b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
629b5ff7f27SJin Yao        "UMask": "0x4"
630b5ff7f27SJin Yao    },
631b5ff7f27SJin Yao    {
632b5ff7f27SJin Yao        "BriefDescription": "Cycles per thread when uops are executed in port 3",
633b5ff7f27SJin Yao        "EventCode": "0xA1",
634b5ff7f27SJin Yao        "EventName": "UOPS_DISPATCHED_PORT.PORT_3",
635b5ff7f27SJin 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.",
636b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
637b5ff7f27SJin Yao        "UMask": "0x8"
638b5ff7f27SJin Yao    },
639b5ff7f27SJin Yao    {
640b5ff7f27SJin Yao        "BriefDescription": "Cycles per thread when uops are executed in port 4",
641b5ff7f27SJin Yao        "EventCode": "0xA1",
642b5ff7f27SJin Yao        "EventName": "UOPS_DISPATCHED_PORT.PORT_4",
643b5ff7f27SJin 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.",
644b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
645b5ff7f27SJin Yao        "UMask": "0x10"
646b5ff7f27SJin Yao    },
647b5ff7f27SJin Yao    {
648b5ff7f27SJin Yao        "BriefDescription": "Cycles per thread when uops are executed in port 5",
649b5ff7f27SJin Yao        "EventCode": "0xA1",
650b5ff7f27SJin Yao        "EventName": "UOPS_DISPATCHED_PORT.PORT_5",
651b5ff7f27SJin 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.",
652b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
653b5ff7f27SJin Yao        "UMask": "0x20"
654b5ff7f27SJin Yao    },
655b5ff7f27SJin Yao    {
656b5ff7f27SJin Yao        "BriefDescription": "Cycles per thread when uops are executed in port 6",
657b5ff7f27SJin Yao        "EventCode": "0xA1",
658b5ff7f27SJin Yao        "EventName": "UOPS_DISPATCHED_PORT.PORT_6",
659b5ff7f27SJin 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.",
660b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
661b5ff7f27SJin Yao        "UMask": "0x40"
662b5ff7f27SJin Yao    },
663b5ff7f27SJin Yao    {
664b5ff7f27SJin Yao        "BriefDescription": "Cycles per thread when uops are executed in port 7",
665b5ff7f27SJin Yao        "EventCode": "0xA1",
666b5ff7f27SJin Yao        "EventName": "UOPS_DISPATCHED_PORT.PORT_7",
667b5ff7f27SJin 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.",
668b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
669b5ff7f27SJin Yao        "UMask": "0x80"
670b5ff7f27SJin Yao    },
671b5ff7f27SJin Yao    {
6722c72404eSJin Yao        "BriefDescription": "Number of uops executed on the core.",
673b5ff7f27SJin Yao        "EventCode": "0xB1",
6742c72404eSJin Yao        "EventName": "UOPS_EXECUTED.CORE",
6752c72404eSJin Yao        "PublicDescription": "Number of uops executed from any thread.",
676b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
677b5ff7f27SJin Yao        "UMask": "0x2"
678b5ff7f27SJin Yao    },
679b5ff7f27SJin Yao    {
680b5ff7f27SJin Yao        "BriefDescription": "Cycles at least 1 micro-op is executed from any thread on physical core.",
681b5ff7f27SJin Yao        "CounterMask": "1",
682b5ff7f27SJin Yao        "EventCode": "0xB1",
683b5ff7f27SJin Yao        "EventName": "UOPS_EXECUTED.CORE_CYCLES_GE_1",
684b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
685b5ff7f27SJin Yao        "UMask": "0x2"
686b5ff7f27SJin Yao    },
687b5ff7f27SJin Yao    {
6882c72404eSJin Yao        "BriefDescription": "Cycles at least 2 micro-op is executed from any thread on physical core.",
6892c72404eSJin Yao        "CounterMask": "2",
6902c72404eSJin Yao        "EventCode": "0xB1",
6912c72404eSJin Yao        "EventName": "UOPS_EXECUTED.CORE_CYCLES_GE_2",
6922c72404eSJin Yao        "SampleAfterValue": "2000003",
6932c72404eSJin Yao        "UMask": "0x2"
6942c72404eSJin Yao    },
6952c72404eSJin Yao    {
6962c72404eSJin Yao        "BriefDescription": "Cycles at least 3 micro-op is executed from any thread on physical core.",
6972c72404eSJin Yao        "CounterMask": "3",
6982c72404eSJin Yao        "EventCode": "0xB1",
6992c72404eSJin Yao        "EventName": "UOPS_EXECUTED.CORE_CYCLES_GE_3",
7002c72404eSJin Yao        "SampleAfterValue": "2000003",
7012c72404eSJin Yao        "UMask": "0x2"
7022c72404eSJin Yao    },
7032c72404eSJin Yao    {
704b5ff7f27SJin Yao        "BriefDescription": "Cycles at least 4 micro-op is executed from any thread on physical core.",
705b5ff7f27SJin Yao        "CounterMask": "4",
706b5ff7f27SJin Yao        "EventCode": "0xB1",
707b5ff7f27SJin Yao        "EventName": "UOPS_EXECUTED.CORE_CYCLES_GE_4",
708b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
709b5ff7f27SJin Yao        "UMask": "0x2"
710b5ff7f27SJin Yao    },
711b5ff7f27SJin Yao    {
7122c72404eSJin Yao        "BriefDescription": "Cycles with no micro-ops executed from any thread on physical core.",
7132c72404eSJin Yao        "CounterMask": "1",
7142c72404eSJin Yao        "EventCode": "0xB1",
7152c72404eSJin Yao        "EventName": "UOPS_EXECUTED.CORE_CYCLES_NONE",
7162c72404eSJin Yao        "Invert": "1",
717b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
7182c72404eSJin Yao        "UMask": "0x2"
719b5ff7f27SJin Yao    },
720b5ff7f27SJin Yao    {
7212c72404eSJin Yao        "BriefDescription": "Cycles where at least 1 uop was executed per-thread",
7222c72404eSJin Yao        "CounterMask": "1",
7232c72404eSJin Yao        "EventCode": "0xB1",
7242c72404eSJin Yao        "EventName": "UOPS_EXECUTED.CYCLES_GE_1_UOP_EXEC",
7252c72404eSJin Yao        "PublicDescription": "Cycles where at least 1 uop was executed per-thread.",
7262c72404eSJin Yao        "SampleAfterValue": "2000003",
7272c72404eSJin Yao        "UMask": "0x1"
728b5ff7f27SJin Yao    },
729b5ff7f27SJin Yao    {
7302c72404eSJin Yao        "BriefDescription": "Cycles where at least 2 uops were executed per-thread",
7312c72404eSJin Yao        "CounterMask": "2",
7322c72404eSJin Yao        "EventCode": "0xB1",
7332c72404eSJin Yao        "EventName": "UOPS_EXECUTED.CYCLES_GE_2_UOPS_EXEC",
7342c72404eSJin Yao        "PublicDescription": "Cycles where at least 2 uops were executed per-thread.",
7352c72404eSJin Yao        "SampleAfterValue": "2000003",
7362c72404eSJin Yao        "UMask": "0x1"
7372c72404eSJin Yao    },
7382c72404eSJin Yao    {
7392c72404eSJin Yao        "BriefDescription": "Cycles where at least 3 uops were executed per-thread",
7402c72404eSJin Yao        "CounterMask": "3",
7412c72404eSJin Yao        "EventCode": "0xB1",
7422c72404eSJin Yao        "EventName": "UOPS_EXECUTED.CYCLES_GE_3_UOPS_EXEC",
7432c72404eSJin Yao        "PublicDescription": "Cycles where at least 3 uops were executed per-thread.",
7442c72404eSJin Yao        "SampleAfterValue": "2000003",
7452c72404eSJin Yao        "UMask": "0x1"
7462c72404eSJin Yao    },
7472c72404eSJin Yao    {
7482c72404eSJin Yao        "BriefDescription": "Cycles where at least 4 uops were executed per-thread",
7492c72404eSJin Yao        "CounterMask": "4",
7502c72404eSJin Yao        "EventCode": "0xB1",
7512c72404eSJin Yao        "EventName": "UOPS_EXECUTED.CYCLES_GE_4_UOPS_EXEC",
7522c72404eSJin Yao        "PublicDescription": "Cycles where at least 4 uops were executed per-thread.",
7532c72404eSJin Yao        "SampleAfterValue": "2000003",
7542c72404eSJin Yao        "UMask": "0x1"
7552c72404eSJin Yao    },
7562c72404eSJin Yao    {
7572c72404eSJin Yao        "BriefDescription": "Counts number of cycles no uops were dispatched to be executed on this thread.",
7582c72404eSJin Yao        "CounterMask": "1",
7592c72404eSJin Yao        "EventCode": "0xB1",
7602c72404eSJin Yao        "EventName": "UOPS_EXECUTED.STALL_CYCLES",
7612c72404eSJin Yao        "Invert": "1",
7622c72404eSJin Yao        "PublicDescription": "Counts cycles during which no uops were dispatched from the Reservation Station (RS) per thread.",
7632c72404eSJin Yao        "SampleAfterValue": "2000003",
7642c72404eSJin Yao        "UMask": "0x1"
7652c72404eSJin Yao    },
7662c72404eSJin Yao    {
7672c72404eSJin Yao        "BriefDescription": "Counts the number of uops to be executed per-thread each cycle.",
7682c72404eSJin Yao        "EventCode": "0xB1",
7692c72404eSJin Yao        "EventName": "UOPS_EXECUTED.THREAD",
7702c72404eSJin Yao        "PublicDescription": "Number of uops to be executed per-thread each cycle.",
7712c72404eSJin Yao        "SampleAfterValue": "2000003",
7722c72404eSJin Yao        "UMask": "0x1"
7732c72404eSJin Yao    },
7742c72404eSJin Yao    {
7752c72404eSJin Yao        "BriefDescription": "Counts the number of x87 uops dispatched.",
7762c72404eSJin Yao        "EventCode": "0xB1",
7772c72404eSJin Yao        "EventName": "UOPS_EXECUTED.X87",
7782c72404eSJin Yao        "PublicDescription": "Counts the number of x87 uops executed.",
7792c72404eSJin Yao        "SampleAfterValue": "2000003",
7802c72404eSJin Yao        "UMask": "0x10"
7812c72404eSJin Yao    },
7822c72404eSJin Yao    {
7832c72404eSJin Yao        "BriefDescription": "Uops that Resource Allocation Table (RAT) issues to Reservation Station (RS)",
7842c72404eSJin Yao        "EventCode": "0x0E",
7852c72404eSJin Yao        "EventName": "UOPS_ISSUED.ANY",
7862c72404eSJin Yao        "PublicDescription": "Counts the number of uops that the Resource Allocation Table (RAT) issues to the Reservation Station (RS).",
7872c72404eSJin Yao        "SampleAfterValue": "2000003",
7882c72404eSJin Yao        "UMask": "0x1"
7892c72404eSJin Yao    },
7902c72404eSJin Yao    {
7912c72404eSJin 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.",
7922c72404eSJin Yao        "EventCode": "0x0E",
7932c72404eSJin Yao        "EventName": "UOPS_ISSUED.SLOW_LEA",
7942c72404eSJin Yao        "SampleAfterValue": "2000003",
7952c72404eSJin Yao        "UMask": "0x20"
7962c72404eSJin Yao    },
7972c72404eSJin Yao    {
7982c72404eSJin Yao        "BriefDescription": "Cycles when Resource Allocation Table (RAT) does not issue Uops to Reservation Station (RS) for the thread",
7992c72404eSJin Yao        "CounterMask": "1",
8002c72404eSJin Yao        "EventCode": "0x0E",
8012c72404eSJin Yao        "EventName": "UOPS_ISSUED.STALL_CYCLES",
8022c72404eSJin Yao        "Invert": "1",
8032c72404eSJin 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.",
8042c72404eSJin Yao        "SampleAfterValue": "2000003",
8052c72404eSJin Yao        "UMask": "0x1"
8062c72404eSJin Yao    },
8072c72404eSJin Yao    {
8082c72404eSJin Yao        "BriefDescription": "Uops inserted at issue-stage in order to preserve upper bits of vector registers.",
8092c72404eSJin Yao        "EventCode": "0x0E",
8102c72404eSJin Yao        "EventName": "UOPS_ISSUED.VECTOR_WIDTH_MISMATCH",
8112c72404eSJin 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.",
8122c72404eSJin Yao        "SampleAfterValue": "2000003",
8132c72404eSJin Yao        "UMask": "0x2"
8142c72404eSJin Yao    },
8152c72404eSJin Yao    {
8162c72404eSJin Yao        "BriefDescription": "Number of macro-fused uops retired. (non precise)",
8172c72404eSJin Yao        "EventCode": "0xc2",
8182c72404eSJin Yao        "EventName": "UOPS_RETIRED.MACRO_FUSED",
8192c72404eSJin Yao        "PublicDescription": "Counts the number of macro-fused uops retired. (non precise)",
8202c72404eSJin Yao        "SampleAfterValue": "2000003",
8212c72404eSJin Yao        "UMask": "0x4"
8222c72404eSJin Yao    },
8232c72404eSJin Yao    {
8242c72404eSJin Yao        "BriefDescription": "Retirement slots used.",
8252c72404eSJin Yao        "EventCode": "0xC2",
8262c72404eSJin Yao        "EventName": "UOPS_RETIRED.RETIRE_SLOTS",
8272c72404eSJin Yao        "PublicDescription": "Counts the retirement slots used.",
8282c72404eSJin Yao        "SampleAfterValue": "2000003",
8292c72404eSJin Yao        "UMask": "0x2"
830b5ff7f27SJin Yao    },
831b5ff7f27SJin Yao    {
832b5ff7f27SJin Yao        "BriefDescription": "Cycles without actually retired uops.",
833b5ff7f27SJin Yao        "CounterMask": "1",
834b5ff7f27SJin Yao        "EventCode": "0xC2",
835b5ff7f27SJin Yao        "EventName": "UOPS_RETIRED.STALL_CYCLES",
836b5ff7f27SJin Yao        "Invert": "1",
837b5ff7f27SJin Yao        "PublicDescription": "This event counts cycles without actually retired uops.",
838b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
839b5ff7f27SJin Yao        "UMask": "0x2"
840b5ff7f27SJin Yao    },
841b5ff7f27SJin Yao    {
8422c72404eSJin Yao        "BriefDescription": "Cycles with less than 10 actually retired uops.",
843e14fd2eeSIan Rogers        "CounterMask": "16",
844b5ff7f27SJin Yao        "EventCode": "0xC2",
8452c72404eSJin Yao        "EventName": "UOPS_RETIRED.TOTAL_CYCLES",
8462c72404eSJin Yao        "Invert": "1",
8472c72404eSJin Yao        "PublicDescription": "Number of cycles using always true condition (uops_ret < 16) applied to non PEBS uops retired event.",
848b5ff7f27SJin Yao        "SampleAfterValue": "2000003",
849b5ff7f27SJin Yao        "UMask": "0x2"
850630171d4SAndi Kleen    }
851630171d4SAndi Kleen]
852