xref: /openbmc/linux/tools/perf/pmu-events/arch/x86/skylake/pipeline.json (revision 1ac731c529cd4d6adbce134754b51ff7d822b145)
147cbd67eSAndi Kleen[
247cbd67eSAndi Kleen    {
33d05181aSJin Yao        "BriefDescription": "Cycles when divide unit is busy executing divide or square root operations. Accounts for integer and floating-point operations.",
43d05181aSJin Yao        "CounterMask": "1",
5c93240a7SAndi Kleen        "EventCode": "0x14",
6c93240a7SAndi Kleen        "EventName": "ARITH.DIVIDER_ACTIVE",
747cbd67eSAndi Kleen        "SampleAfterValue": "2000003",
83d05181aSJin Yao        "UMask": "0x1"
947cbd67eSAndi Kleen    },
1047cbd67eSAndi Kleen    {
113f5f0df7SIan Rogers        "BriefDescription": "All (macro) branch instructions retired.",
123f5f0df7SIan Rogers        "Errata": "SKL091",
133f5f0df7SIan Rogers        "EventCode": "0xC4",
143f5f0df7SIan Rogers        "EventName": "BR_INST_RETIRED.ALL_BRANCHES",
153f5f0df7SIan Rogers        "PublicDescription": "Counts all (macro) branch instructions retired.",
163f5f0df7SIan Rogers        "SampleAfterValue": "400009"
173f5f0df7SIan Rogers    },
183f5f0df7SIan Rogers    {
193f5f0df7SIan Rogers        "BriefDescription": "All (macro) branch instructions retired.",
203f5f0df7SIan Rogers        "Errata": "SKL091",
213f5f0df7SIan Rogers        "EventCode": "0xC4",
223f5f0df7SIan Rogers        "EventName": "BR_INST_RETIRED.ALL_BRANCHES_PEBS",
233f5f0df7SIan Rogers        "PEBS": "2",
243f5f0df7SIan Rogers        "PublicDescription": "This is a precise version of BR_INST_RETIRED.ALL_BRANCHES that counts all (macro) branch instructions retired.",
253f5f0df7SIan Rogers        "SampleAfterValue": "400009",
263f5f0df7SIan Rogers        "UMask": "0x4"
273f5f0df7SIan Rogers    },
283f5f0df7SIan Rogers    {
293f5f0df7SIan Rogers        "BriefDescription": "Conditional branch instructions retired. [This event is alias to BR_INST_RETIRED.CONDITIONAL]",
303f5f0df7SIan Rogers        "Errata": "SKL091",
313f5f0df7SIan Rogers        "EventCode": "0xC4",
323f5f0df7SIan Rogers        "EventName": "BR_INST_RETIRED.COND",
333f5f0df7SIan Rogers        "PublicDescription": "This event counts conditional branch instructions retired. [This event is alias to BR_INST_RETIRED.CONDITIONAL]",
343f5f0df7SIan Rogers        "SampleAfterValue": "400009",
353f5f0df7SIan Rogers        "UMask": "0x1"
363d05181aSJin Yao    },
373d05181aSJin Yao    {
383d05181aSJin Yao        "BriefDescription": "Conditional branch instructions retired. [This event is alias to BR_INST_RETIRED.COND]",
393f5f0df7SIan Rogers        "Errata": "SKL091",
403f5f0df7SIan Rogers        "EventCode": "0xC4",
413f5f0df7SIan Rogers        "EventName": "BR_INST_RETIRED.CONDITIONAL",
423f5f0df7SIan Rogers        "PEBS": "1",
433f5f0df7SIan Rogers        "PublicDescription": "This event counts conditional branch instructions retired. [This event is alias to BR_INST_RETIRED.COND]",
443f5f0df7SIan Rogers        "SampleAfterValue": "400009",
453f5f0df7SIan Rogers        "UMask": "0x1"
463f5f0df7SIan Rogers    },
473f5f0df7SIan Rogers    {
483d05181aSJin Yao        "BriefDescription": "Not taken branch instructions retired.",
493d05181aSJin Yao        "Errata": "SKL091",
503d05181aSJin Yao        "EventCode": "0xc4",
513d05181aSJin Yao        "EventName": "BR_INST_RETIRED.COND_NTAKEN",
523d05181aSJin Yao        "PublicDescription": "This event counts not taken branch instructions retired.",
533d05181aSJin Yao        "SampleAfterValue": "400009",
543d05181aSJin Yao        "UMask": "0x10"
553d05181aSJin Yao    },
563d05181aSJin Yao    {
573d05181aSJin Yao        "BriefDescription": "Far branch instructions retired.",
583f5f0df7SIan Rogers        "Errata": "SKL091",
593f5f0df7SIan Rogers        "EventCode": "0xC4",
603f5f0df7SIan Rogers        "EventName": "BR_INST_RETIRED.FAR_BRANCH",
613f5f0df7SIan Rogers        "PEBS": "1",
623f5f0df7SIan Rogers        "PublicDescription": "This event counts far branch instructions retired.",
633f5f0df7SIan Rogers        "SampleAfterValue": "100007",
643f5f0df7SIan Rogers        "UMask": "0x40"
653f5f0df7SIan Rogers    },
663f5f0df7SIan Rogers    {
673f5f0df7SIan Rogers        "BriefDescription": "Direct and indirect near call instructions retired.",
683f5f0df7SIan Rogers        "Errata": "SKL091",
693f5f0df7SIan Rogers        "EventCode": "0xC4",
703f5f0df7SIan Rogers        "EventName": "BR_INST_RETIRED.NEAR_CALL",
713f5f0df7SIan Rogers        "PEBS": "1",
723f5f0df7SIan Rogers        "PublicDescription": "This event counts both direct and indirect near call instructions retired.",
733f5f0df7SIan Rogers        "SampleAfterValue": "100007",
743f5f0df7SIan Rogers        "UMask": "0x2"
753f5f0df7SIan Rogers    },
763f5f0df7SIan Rogers    {
773f5f0df7SIan Rogers        "BriefDescription": "Return instructions retired.",
783f5f0df7SIan Rogers        "Errata": "SKL091",
793f5f0df7SIan Rogers        "EventCode": "0xC4",
803f5f0df7SIan Rogers        "EventName": "BR_INST_RETIRED.NEAR_RETURN",
813f5f0df7SIan Rogers        "PEBS": "1",
823f5f0df7SIan Rogers        "PublicDescription": "This event counts return instructions retired.",
833f5f0df7SIan Rogers        "SampleAfterValue": "100007",
843f5f0df7SIan Rogers        "UMask": "0x8"
853f5f0df7SIan Rogers    },
863f5f0df7SIan Rogers    {
873f5f0df7SIan Rogers        "BriefDescription": "Taken branch instructions retired.",
883f5f0df7SIan Rogers        "Errata": "SKL091",
893f5f0df7SIan Rogers        "EventCode": "0xC4",
903f5f0df7SIan Rogers        "EventName": "BR_INST_RETIRED.NEAR_TAKEN",
913f5f0df7SIan Rogers        "PEBS": "1",
923f5f0df7SIan Rogers        "PublicDescription": "This event counts taken branch instructions retired.",
933f5f0df7SIan Rogers        "SampleAfterValue": "400009",
943d05181aSJin Yao        "UMask": "0x20"
953d05181aSJin Yao    },
963d05181aSJin Yao    {
979d9675bbSIan Rogers        "BriefDescription": "Not taken branch instructions retired.",
989d9675bbSIan Rogers        "Errata": "SKL091",
999d9675bbSIan Rogers        "EventCode": "0xC4",
1009d9675bbSIan Rogers        "EventName": "BR_INST_RETIRED.NOT_TAKEN",
1019d9675bbSIan Rogers        "PublicDescription": "This event counts not taken branch instructions retired.",
1029d9675bbSIan Rogers        "SampleAfterValue": "400009",
1039d9675bbSIan Rogers        "UMask": "0x10"
1049d9675bbSIan Rogers    },
1059d9675bbSIan Rogers    {
1069d9675bbSIan Rogers        "BriefDescription": "Speculative and retired mispredicted macro conditional branches",
1079d9675bbSIan Rogers        "EventCode": "0x89",
1089d9675bbSIan Rogers        "EventName": "BR_MISP_EXEC.ALL_BRANCHES",
1099d9675bbSIan Rogers        "PublicDescription": "This event counts both taken and not taken speculative and retired mispredicted branch instructions.",
1109d9675bbSIan Rogers        "SampleAfterValue": "200003",
1119d9675bbSIan Rogers        "UMask": "0xff"
1129d9675bbSIan Rogers    },
1133f5f0df7SIan Rogers    {
1143f5f0df7SIan Rogers        "BriefDescription": "Speculative mispredicted indirect branches",
1153f5f0df7SIan Rogers        "EventCode": "0x89",
1163f5f0df7SIan Rogers        "EventName": "BR_MISP_EXEC.INDIRECT",
1173f5f0df7SIan Rogers        "PublicDescription": "Counts speculatively miss-predicted indirect branches at execution time. Counts for indirect near CALL or JMP instructions (RET excluded).",
1183f5f0df7SIan Rogers        "SampleAfterValue": "200003",
1193f5f0df7SIan Rogers        "UMask": "0xe4"
1203f5f0df7SIan Rogers    },
1213f5f0df7SIan Rogers    {
1223f5f0df7SIan Rogers        "BriefDescription": "All mispredicted macro branch instructions retired.",
1233f5f0df7SIan Rogers        "EventCode": "0xC5",
1243f5f0df7SIan Rogers        "EventName": "BR_MISP_RETIRED.ALL_BRANCHES",
1253f5f0df7SIan Rogers        "PublicDescription": "Counts all the retired branch instructions that were mispredicted by the processor. A branch misprediction occurs when the processor incorrectly predicts the destination of the branch.  When the misprediction is discovered at execution, all the instructions executed in the wrong (speculative) path must be discarded, and the processor must start fetching from the correct path.",
1263f5f0df7SIan Rogers        "SampleAfterValue": "400009"
1273f5f0df7SIan Rogers    },
1283f5f0df7SIan Rogers    {
1293f5f0df7SIan Rogers        "BriefDescription": "Mispredicted macro branch instructions retired.",
1303f5f0df7SIan Rogers        "EventCode": "0xC5",
1313f5f0df7SIan Rogers        "EventName": "BR_MISP_RETIRED.ALL_BRANCHES_PEBS",
1323f5f0df7SIan Rogers        "PEBS": "2",
1333f5f0df7SIan Rogers        "PublicDescription": "This is a precise version of BR_MISP_RETIRED.ALL_BRANCHES that counts all mispredicted macro branch instructions retired.",
1343f5f0df7SIan Rogers        "SampleAfterValue": "400009",
1353d05181aSJin Yao        "UMask": "0x4"
13624339348SAndi Kleen    },
13724339348SAndi Kleen    {
1383d05181aSJin Yao        "BriefDescription": "Mispredicted conditional branch instructions retired.",
1393d05181aSJin Yao        "EventCode": "0xC5",
1403d05181aSJin Yao        "EventName": "BR_MISP_RETIRED.CONDITIONAL",
1413d05181aSJin Yao        "PEBS": "1",
1423d05181aSJin Yao        "PublicDescription": "This event counts mispredicted conditional branch instructions retired.",
1433d05181aSJin Yao        "SampleAfterValue": "400009",
1443d05181aSJin Yao        "UMask": "0x1"
14547cbd67eSAndi Kleen    },
14647cbd67eSAndi Kleen    {
1473f5f0df7SIan Rogers        "BriefDescription": "Mispredicted direct and indirect near call instructions retired.",
1483f5f0df7SIan Rogers        "EventCode": "0xC5",
1493f5f0df7SIan Rogers        "EventName": "BR_MISP_RETIRED.NEAR_CALL",
1503f5f0df7SIan Rogers        "PEBS": "1",
1513f5f0df7SIan Rogers        "PublicDescription": "Counts both taken and not taken retired mispredicted direct and indirect near calls, including both register and memory indirect.",
1523d05181aSJin Yao        "SampleAfterValue": "400009",
153c93240a7SAndi Kleen        "UMask": "0x2"
154c93240a7SAndi Kleen    },
1553f5f0df7SIan Rogers    {
1563f5f0df7SIan Rogers        "BriefDescription": "Number of near branch instructions retired that were mispredicted and taken.",
1573f5f0df7SIan Rogers        "EventCode": "0xC5",
1583f5f0df7SIan Rogers        "EventName": "BR_MISP_RETIRED.NEAR_TAKEN",
1593f5f0df7SIan Rogers        "PEBS": "1",
1603f5f0df7SIan Rogers        "SampleAfterValue": "400009",
1613f5f0df7SIan Rogers        "UMask": "0x20"
1623f5f0df7SIan Rogers    },
1633f5f0df7SIan Rogers    {
1643f5f0df7SIan Rogers        "BriefDescription": "Core crystal clock cycles when this thread is unhalted and the other thread is halted.",
1653f5f0df7SIan Rogers        "EventCode": "0x3C",
1663f5f0df7SIan Rogers        "EventName": "CPU_CLK_THREAD_UNHALTED.ONE_THREAD_ACTIVE",
1673f5f0df7SIan Rogers        "SampleAfterValue": "25003",
1683f5f0df7SIan Rogers        "UMask": "0x2"
1693f5f0df7SIan Rogers    },
1703f5f0df7SIan Rogers    {
1713f5f0df7SIan Rogers        "BriefDescription": "Core crystal clock cycles when the thread is unhalted.",
1723f5f0df7SIan Rogers        "EventCode": "0x3C",
1733f5f0df7SIan Rogers        "EventName": "CPU_CLK_THREAD_UNHALTED.REF_XCLK",
1743f5f0df7SIan Rogers        "SampleAfterValue": "25003",
1753f5f0df7SIan Rogers        "UMask": "0x1"
1763f5f0df7SIan Rogers    },
1773f5f0df7SIan Rogers    {
1783f5f0df7SIan Rogers        "AnyThread": "1",
1793f5f0df7SIan Rogers        "BriefDescription": "Core crystal clock cycles when at least one thread on the physical core is unhalted.",
1803f5f0df7SIan Rogers        "EventCode": "0x3C",
1813f5f0df7SIan Rogers        "EventName": "CPU_CLK_THREAD_UNHALTED.REF_XCLK_ANY",
1823f5f0df7SIan Rogers        "SampleAfterValue": "25003",
1833f5f0df7SIan Rogers        "UMask": "0x1"
1843f5f0df7SIan Rogers    },
1853f5f0df7SIan Rogers    {
1863f5f0df7SIan Rogers        "BriefDescription": "Core crystal clock cycles when this thread is unhalted and the other thread is halted.",
1873f5f0df7SIan Rogers        "EventCode": "0x3C",
1883f5f0df7SIan Rogers        "EventName": "CPU_CLK_UNHALTED.ONE_THREAD_ACTIVE",
1893f5f0df7SIan Rogers        "SampleAfterValue": "25003",
1903f5f0df7SIan Rogers        "UMask": "0x2"
1913f5f0df7SIan Rogers    },
1923f5f0df7SIan Rogers    {
1933f5f0df7SIan Rogers        "BriefDescription": "Reference cycles when the core is not in halt state.",
1943f5f0df7SIan Rogers        "EventName": "CPU_CLK_UNHALTED.REF_TSC",
1953f5f0df7SIan Rogers        "PublicDescription": "Counts the number of reference cycles when the core is not in a halt state. The core enters the halt state when it is running the HLT instruction or the MWAIT instruction. This event is not affected by core frequency changes (for example, P states, TM2 transitions) but has the same incrementing frequency as the time stamp counter. This event can approximate elapsed time while the core was not in a halt state. 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.",
1963f5f0df7SIan Rogers        "SampleAfterValue": "2000003",
1973f5f0df7SIan Rogers        "UMask": "0x3"
1983f5f0df7SIan Rogers    },
1993f5f0df7SIan Rogers    {
2003f5f0df7SIan Rogers        "BriefDescription": "Core crystal clock cycles when the thread is unhalted.",
2013f5f0df7SIan Rogers        "EventCode": "0x3C",
2023f5f0df7SIan Rogers        "EventName": "CPU_CLK_UNHALTED.REF_XCLK",
2033f5f0df7SIan Rogers        "SampleAfterValue": "25003",
2043f5f0df7SIan Rogers        "UMask": "0x1"
2053f5f0df7SIan Rogers    },
2063f5f0df7SIan Rogers    {
2073f5f0df7SIan Rogers        "AnyThread": "1",
2083f5f0df7SIan Rogers        "BriefDescription": "Core crystal clock cycles when at least one thread on the physical core is unhalted.",
2093f5f0df7SIan Rogers        "EventCode": "0x3C",
2103f5f0df7SIan Rogers        "EventName": "CPU_CLK_UNHALTED.REF_XCLK_ANY",
2113f5f0df7SIan Rogers        "SampleAfterValue": "25003",
2123f5f0df7SIan Rogers        "UMask": "0x1"
2133f5f0df7SIan Rogers    },
2143f5f0df7SIan Rogers    {
2153f5f0df7SIan Rogers        "BriefDescription": "Counts when there is a transition from ring 1, 2 or 3 to ring 0.",
2163f5f0df7SIan Rogers        "CounterMask": "1",
2173f5f0df7SIan Rogers        "EdgeDetect": "1",
2183f5f0df7SIan Rogers        "EventCode": "0x3C",
2193f5f0df7SIan Rogers        "EventName": "CPU_CLK_UNHALTED.RING0_TRANS",
2203f5f0df7SIan Rogers        "PublicDescription": "Counts when the Current Privilege Level (CPL) transitions from ring 1, 2 or 3 to ring 0 (Kernel).",
2213f5f0df7SIan Rogers        "SampleAfterValue": "100007"
2223f5f0df7SIan Rogers    },
2233f5f0df7SIan Rogers    {
2243f5f0df7SIan Rogers        "BriefDescription": "Core cycles when the thread is not in halt state",
2253d05181aSJin Yao        "EventName": "CPU_CLK_UNHALTED.THREAD",
2263d05181aSJin 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.",
227c93240a7SAndi Kleen        "SampleAfterValue": "2000003",
228c93240a7SAndi Kleen        "UMask": "0x2"
2293d05181aSJin Yao    },
2303d05181aSJin Yao    {
2313d05181aSJin Yao        "AnyThread": "1",
2323d05181aSJin Yao        "BriefDescription": "Core cycles when at least one thread on the physical core is not in halt state.",
2333d05181aSJin Yao        "EventName": "CPU_CLK_UNHALTED.THREAD_ANY",
2343d05181aSJin Yao        "SampleAfterValue": "2000003",
2353d05181aSJin Yao        "UMask": "0x2"
2363f5f0df7SIan Rogers    },
2373f5f0df7SIan Rogers    {
2383f5f0df7SIan Rogers        "BriefDescription": "Thread cycles when thread is not in halt state",
2393f5f0df7SIan Rogers        "EventCode": "0x3C",
2403f5f0df7SIan Rogers        "EventName": "CPU_CLK_UNHALTED.THREAD_P",
2413f5f0df7SIan Rogers        "PublicDescription": "This is an architectural event that counts the number of thread cycles while the thread is not in a halt state. The thread enters the halt state when it is running the HLT instruction. The core frequency may change from time to time due to power or thermal throttling. For this reason, this event may have a changing ratio with regards to wall clock time.",
2423f5f0df7SIan Rogers        "SampleAfterValue": "2000003"
2433f5f0df7SIan Rogers    },
2443f5f0df7SIan Rogers    {
2453f5f0df7SIan Rogers        "AnyThread": "1",
2463f5f0df7SIan Rogers        "BriefDescription": "Core cycles when at least one thread on the physical core is not in halt state.",
2473f5f0df7SIan Rogers        "EventCode": "0x3C",
2483f5f0df7SIan Rogers        "EventName": "CPU_CLK_UNHALTED.THREAD_P_ANY",
2493f5f0df7SIan Rogers        "SampleAfterValue": "2000003"
2503f5f0df7SIan Rogers    },
2513f5f0df7SIan Rogers    {
2523f5f0df7SIan Rogers        "BriefDescription": "Cycles while L1 cache miss demand load is outstanding.",
2533f5f0df7SIan Rogers        "CounterMask": "8",
2543f5f0df7SIan Rogers        "EventCode": "0xA3",
2553d05181aSJin Yao        "EventName": "CYCLE_ACTIVITY.CYCLES_L1D_MISS",
2563d05181aSJin Yao        "SampleAfterValue": "2000003",
2573d05181aSJin Yao        "UMask": "0x8"
2583d05181aSJin Yao    },
2593f5f0df7SIan Rogers    {
2603f5f0df7SIan Rogers        "BriefDescription": "Cycles while L2 cache miss demand load is outstanding.",
2613f5f0df7SIan Rogers        "CounterMask": "1",
2623f5f0df7SIan Rogers        "EventCode": "0xA3",
2633f5f0df7SIan Rogers        "EventName": "CYCLE_ACTIVITY.CYCLES_L2_MISS",
2643f5f0df7SIan Rogers        "SampleAfterValue": "2000003",
2653f5f0df7SIan Rogers        "UMask": "0x1"
2663f5f0df7SIan Rogers    },
2673f5f0df7SIan Rogers    {
2683f5f0df7SIan Rogers        "BriefDescription": "Cycles while memory subsystem has an outstanding load.",
2693f5f0df7SIan Rogers        "CounterMask": "16",
2703f5f0df7SIan Rogers        "EventCode": "0xA3",
2713f5f0df7SIan Rogers        "EventName": "CYCLE_ACTIVITY.CYCLES_MEM_ANY",
2723f5f0df7SIan Rogers        "SampleAfterValue": "2000003",
2733f5f0df7SIan Rogers        "UMask": "0x10"
2743f5f0df7SIan Rogers    },
2753f5f0df7SIan Rogers    {
2763f5f0df7SIan Rogers        "BriefDescription": "Execution stalls while L1 cache miss demand load is outstanding.",
2773f5f0df7SIan Rogers        "CounterMask": "12",
2783f5f0df7SIan Rogers        "EventCode": "0xA3",
2793f5f0df7SIan Rogers        "EventName": "CYCLE_ACTIVITY.STALLS_L1D_MISS",
2803f5f0df7SIan Rogers        "SampleAfterValue": "2000003",
2813f5f0df7SIan Rogers        "UMask": "0xc"
2823f5f0df7SIan Rogers    },
2833f5f0df7SIan Rogers    {
2843f5f0df7SIan Rogers        "BriefDescription": "Execution stalls while L2 cache miss demand load is outstanding.",
2853f5f0df7SIan Rogers        "CounterMask": "5",
2863f5f0df7SIan Rogers        "EventCode": "0xA3",
2873f5f0df7SIan Rogers        "EventName": "CYCLE_ACTIVITY.STALLS_L2_MISS",
2883f5f0df7SIan Rogers        "SampleAfterValue": "2000003",
2893f5f0df7SIan Rogers        "UMask": "0x5"
2903f5f0df7SIan Rogers    },
2913f5f0df7SIan Rogers    {
2923f5f0df7SIan Rogers        "BriefDescription": "Execution stalls while memory subsystem has an outstanding load.",
2933f5f0df7SIan Rogers        "CounterMask": "20",
2943f5f0df7SIan Rogers        "EventCode": "0xA3",
2953f5f0df7SIan Rogers        "EventName": "CYCLE_ACTIVITY.STALLS_MEM_ANY",
2963f5f0df7SIan Rogers        "SampleAfterValue": "2000003",
2973f5f0df7SIan Rogers        "UMask": "0x14"
2983f5f0df7SIan Rogers    },
2993f5f0df7SIan Rogers    {
3003f5f0df7SIan Rogers        "BriefDescription": "Total execution stalls.",
3013f5f0df7SIan Rogers        "CounterMask": "4",
3023f5f0df7SIan Rogers        "EventCode": "0xA3",
3033f5f0df7SIan Rogers        "EventName": "CYCLE_ACTIVITY.STALLS_TOTAL",
3043f5f0df7SIan Rogers        "SampleAfterValue": "2000003",
3053f5f0df7SIan Rogers        "UMask": "0x4"
3063f5f0df7SIan Rogers    },
3073f5f0df7SIan Rogers    {
3083f5f0df7SIan Rogers        "BriefDescription": "Cycles total of 1 uop is executed on all ports and Reservation Station was not empty.",
3093f5f0df7SIan Rogers        "EventCode": "0xA6",
3103f5f0df7SIan Rogers        "EventName": "EXE_ACTIVITY.1_PORTS_UTIL",
3113f5f0df7SIan Rogers        "PublicDescription": "Counts cycles during which a total of 1 uop was executed on all ports and Reservation Station (RS) was not empty.",
3123f5f0df7SIan Rogers        "SampleAfterValue": "2000003",
3133f5f0df7SIan Rogers        "UMask": "0x2"
3143f5f0df7SIan Rogers    },
3153f5f0df7SIan Rogers    {
3163f5f0df7SIan Rogers        "BriefDescription": "Cycles total of 2 uops are executed on all ports and Reservation Station was not empty.",
3173f5f0df7SIan Rogers        "EventCode": "0xA6",
3183f5f0df7SIan Rogers        "EventName": "EXE_ACTIVITY.2_PORTS_UTIL",
3193f5f0df7SIan Rogers        "PublicDescription": "Counts cycles during which a total of 2 uops were executed on all ports and Reservation Station (RS) was not empty.",
3203f5f0df7SIan Rogers        "SampleAfterValue": "2000003",
3213f5f0df7SIan Rogers        "UMask": "0x4"
3223f5f0df7SIan Rogers    },
3233f5f0df7SIan Rogers    {
3243f5f0df7SIan Rogers        "BriefDescription": "Cycles total of 3 uops are executed on all ports and Reservation Station was not empty.",
3253f5f0df7SIan Rogers        "EventCode": "0xA6",
3263f5f0df7SIan Rogers        "EventName": "EXE_ACTIVITY.3_PORTS_UTIL",
3273f5f0df7SIan Rogers        "PublicDescription": "Cycles total of 3 uops are executed on all ports and Reservation Station (RS) was not empty.",
3283f5f0df7SIan Rogers        "SampleAfterValue": "2000003",
3293f5f0df7SIan Rogers        "UMask": "0x8"
3303f5f0df7SIan Rogers    },
3313f5f0df7SIan Rogers    {
3323f5f0df7SIan Rogers        "BriefDescription": "Cycles total of 4 uops are executed on all ports and Reservation Station was not empty.",
3333f5f0df7SIan Rogers        "EventCode": "0xA6",
3343f5f0df7SIan Rogers        "EventName": "EXE_ACTIVITY.4_PORTS_UTIL",
3353f5f0df7SIan Rogers        "PublicDescription": "Cycles total of 4 uops are executed on all ports and Reservation Station (RS) was not empty.",
3363f5f0df7SIan Rogers        "SampleAfterValue": "2000003",
3373f5f0df7SIan Rogers        "UMask": "0x10"
3383f5f0df7SIan Rogers    },
3393f5f0df7SIan Rogers    {
3403f5f0df7SIan Rogers        "BriefDescription": "Cycles where the Store Buffer was full and no outstanding load.",
3413f5f0df7SIan Rogers        "EventCode": "0xA6",
3423f5f0df7SIan Rogers        "EventName": "EXE_ACTIVITY.BOUND_ON_STORES",
3433f5f0df7SIan Rogers        "SampleAfterValue": "2000003",
3443f5f0df7SIan Rogers        "UMask": "0x40"
3453f5f0df7SIan Rogers    },
3463f5f0df7SIan Rogers    {
3473f5f0df7SIan Rogers        "BriefDescription": "Cycles where no uops were executed, the Reservation Station was not empty, the Store Buffer was full and there was no outstanding load.",
3483f5f0df7SIan Rogers        "EventCode": "0xA6",
3493f5f0df7SIan Rogers        "EventName": "EXE_ACTIVITY.EXE_BOUND_0_PORTS",
3503f5f0df7SIan Rogers        "PublicDescription": "Counts cycles during which no uops were executed on all ports and Reservation Station (RS) was not empty.",
3513f5f0df7SIan Rogers        "SampleAfterValue": "2000003",
3523f5f0df7SIan Rogers        "UMask": "0x1"
3533f5f0df7SIan Rogers    },
35402c758d2SIan Rogers    {
35502c758d2SIan Rogers        "BriefDescription": "Stalls caused by changing prefix length of the instruction. [This event is alias to DECODE.LCP]",
35602c758d2SIan Rogers        "EventCode": "0x87",
35702c758d2SIan Rogers        "EventName": "ILD_STALL.LCP",
35802c758d2SIan 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]",
35902c758d2SIan Rogers        "SampleAfterValue": "2000003",
36002c758d2SIan Rogers        "UMask": "0x1"
36102c758d2SIan Rogers    },
3623f5f0df7SIan Rogers    {
3633f5f0df7SIan Rogers        "BriefDescription": "Instruction decoders utilized in a cycle",
3643f5f0df7SIan Rogers        "EventCode": "0x55",
3653f5f0df7SIan Rogers        "EventName": "INST_DECODED.DECODERS",
3663f5f0df7SIan Rogers        "PublicDescription": "Number of decoders utilized in a cycle when the MITE (legacy decode pipeline) fetches instructions.",
3673f5f0df7SIan Rogers        "SampleAfterValue": "2000003",
3683f5f0df7SIan Rogers        "UMask": "0x1"
3693f5f0df7SIan Rogers    },
3703f5f0df7SIan Rogers    {
3713f5f0df7SIan Rogers        "BriefDescription": "Instructions retired from execution.",
3723f5f0df7SIan Rogers        "EventName": "INST_RETIRED.ANY",
3733f5f0df7SIan Rogers        "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.",
3743f5f0df7SIan Rogers        "SampleAfterValue": "2000003",
3753f5f0df7SIan Rogers        "UMask": "0x1"
3763f5f0df7SIan Rogers    },
3773f5f0df7SIan Rogers    {
3783f5f0df7SIan Rogers        "BriefDescription": "Number of instructions retired. General Counter - architectural event",
3793f5f0df7SIan Rogers        "Errata": "SKL091, SKL044",
3803f5f0df7SIan Rogers        "EventCode": "0xC0",
3813f5f0df7SIan Rogers        "EventName": "INST_RETIRED.ANY_P",
3823f5f0df7SIan Rogers        "PublicDescription": "Counts the number of instructions (EOMs) retired. Counting covers macro-fused instructions individually (that is, increments by two).",
3833f5f0df7SIan Rogers        "SampleAfterValue": "2000003"
3843f5f0df7SIan Rogers    },
3853f5f0df7SIan Rogers    {
3863f5f0df7SIan Rogers        "BriefDescription": "Number of all retired NOP instructions.",
3873f5f0df7SIan Rogers        "Errata": "SKL091, SKL044",
3883f5f0df7SIan Rogers        "EventCode": "0xC0",
3893f5f0df7SIan Rogers        "EventName": "INST_RETIRED.NOP",
3903f5f0df7SIan Rogers        "PEBS": "1",
3913f5f0df7SIan Rogers        "SampleAfterValue": "2000003",
3923f5f0df7SIan Rogers        "UMask": "0x2"
3933f5f0df7SIan Rogers    },
3943f5f0df7SIan Rogers    {
3953f5f0df7SIan Rogers        "BriefDescription": "Precise instruction retired event with HW to reduce effect of PEBS shadow in IP distribution",
3963f5f0df7SIan Rogers        "Errata": "SKL091, SKL044",
3973f5f0df7SIan Rogers        "EventCode": "0xC0",
3983f5f0df7SIan Rogers        "EventName": "INST_RETIRED.PREC_DIST",
3993f5f0df7SIan Rogers        "PEBS": "2",
4003f5f0df7SIan Rogers        "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.",
4013f5f0df7SIan Rogers        "SampleAfterValue": "2000003",
4023f5f0df7SIan Rogers        "UMask": "0x1"
4033f5f0df7SIan Rogers    },
4043f5f0df7SIan Rogers    {
4053f5f0df7SIan Rogers        "BriefDescription": "Number of cycles using always true condition applied to  PEBS instructions retired event.",
4063f5f0df7SIan Rogers        "CounterMask": "10",
4073f5f0df7SIan Rogers        "Errata": "SKL091, SKL044",
408*3da9559eSIan Rogers        "EventCode": "0xC0",
409*3da9559eSIan Rogers        "EventName": "INST_RETIRED.TOTAL_CYCLES_PS",
410*3da9559eSIan Rogers        "Invert": "1",
411*3da9559eSIan Rogers        "PEBS": "2",
412*3da9559eSIan Rogers        "PublicDescription": "Number of cycles using an always true condition applied to  PEBS instructions retired event. (inst_ret< 16)",
413*3da9559eSIan Rogers        "SampleAfterValue": "2000003",
414*3da9559eSIan Rogers        "UMask": "0x1"
415*3da9559eSIan Rogers    },
416*3da9559eSIan Rogers    {
417*3da9559eSIan Rogers        "BriefDescription": "Clears speculative count",
4183f5f0df7SIan Rogers        "CounterMask": "1",
4193f5f0df7SIan Rogers        "EdgeDetect": "1",
4203f5f0df7SIan Rogers        "EventCode": "0x0D",
4213f5f0df7SIan Rogers        "EventName": "INT_MISC.CLEARS_COUNT",
4223f5f0df7SIan Rogers        "PublicDescription": "Counts the number of speculative clears due to any type of branch misprediction or machine clears",
4233f5f0df7SIan Rogers        "SampleAfterValue": "2000003",
4243f5f0df7SIan Rogers        "UMask": "0x1"
4253f5f0df7SIan Rogers    },
4263f5f0df7SIan Rogers    {
4273f5f0df7SIan Rogers        "BriefDescription": "Cycles the issue-stage is waiting for front-end to fetch from resteered path following branch misprediction or machine clear events.",
4283f5f0df7SIan Rogers        "EventCode": "0x0D",
4293f5f0df7SIan Rogers        "EventName": "INT_MISC.CLEAR_RESTEER_CYCLES",
4303f5f0df7SIan Rogers        "SampleAfterValue": "2000003",
4313f5f0df7SIan Rogers        "UMask": "0x80"
4323f5f0df7SIan Rogers    },
4333f5f0df7SIan Rogers    {
4343f5f0df7SIan Rogers        "BriefDescription": "Core cycles the allocator was stalled due to recovery from earlier clear event for this thread (e.g. misprediction or memory nuke)",
4353f5f0df7SIan Rogers        "EventCode": "0x0D",
4363f5f0df7SIan Rogers        "EventName": "INT_MISC.RECOVERY_CYCLES",
4373f5f0df7SIan Rogers        "PublicDescription": "Core cycles the Resource allocator was stalled due to recovery from an earlier branch misprediction or machine clear event.",
4383f5f0df7SIan Rogers        "SampleAfterValue": "2000003",
4393f5f0df7SIan Rogers        "UMask": "0x1"
4403f5f0df7SIan Rogers    },
4413f5f0df7SIan Rogers    {
4423f5f0df7SIan Rogers        "AnyThread": "1",
4433f5f0df7SIan Rogers        "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).",
4443f5f0df7SIan Rogers        "EventCode": "0x0D",
4453f5f0df7SIan Rogers        "EventName": "INT_MISC.RECOVERY_CYCLES_ANY",
4463f5f0df7SIan Rogers        "SampleAfterValue": "2000003",
4473f5f0df7SIan Rogers        "UMask": "0x1"
4483f5f0df7SIan Rogers    },
4493f5f0df7SIan Rogers    {
4503f5f0df7SIan Rogers        "BriefDescription": "The number of times that split load operations are temporarily blocked because all resources for handling the split accesses are in use",
4513f5f0df7SIan Rogers        "EventCode": "0x03",
4523f5f0df7SIan Rogers        "EventName": "LD_BLOCKS.NO_SR",
4533f5f0df7SIan Rogers        "PublicDescription": "The number of times that split load operations are temporarily blocked because all resources for handling the split accesses are in use.",
4543f5f0df7SIan Rogers        "SampleAfterValue": "100003",
4553f5f0df7SIan Rogers        "UMask": "0x8"
4563f5f0df7SIan Rogers    },
4573f5f0df7SIan Rogers    {
4583f5f0df7SIan Rogers        "BriefDescription": "Loads blocked due to overlapping with a preceding store that cannot be forwarded.",
4593f5f0df7SIan Rogers        "EventCode": "0x03",
4603f5f0df7SIan Rogers        "EventName": "LD_BLOCKS.STORE_FORWARD",
4613f5f0df7SIan Rogers        "PublicDescription": "Counts the number of times where store forwarding was prevented for a load operation. The most common case is a load blocked due to the address of memory access (partially) overlapping with a preceding uncompleted store. Note: See the table of not supported store forwards in the Optimization Guide.",
4623f5f0df7SIan Rogers        "SampleAfterValue": "100003",
4633f5f0df7SIan Rogers        "UMask": "0x2"
4643f5f0df7SIan Rogers    },
4653f5f0df7SIan Rogers    {
4663f5f0df7SIan Rogers        "BriefDescription": "False dependencies in MOB due to partial compare on address.",
4673f5f0df7SIan Rogers        "EventCode": "0x07",
4683f5f0df7SIan Rogers        "EventName": "LD_BLOCKS_PARTIAL.ADDRESS_ALIAS",
4693f5f0df7SIan Rogers        "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.",
4703f5f0df7SIan Rogers        "SampleAfterValue": "100003",
4713f5f0df7SIan Rogers        "UMask": "0x1"
4723f5f0df7SIan Rogers    },
4733f5f0df7SIan Rogers    {
4743f5f0df7SIan Rogers        "BriefDescription": "Demand load dispatches that hit L1D fill buffer (FB) allocated for software prefetch.",
4753f5f0df7SIan Rogers        "EventCode": "0x4C",
4763f5f0df7SIan Rogers        "EventName": "LOAD_HIT_PRE.SW_PF",
4773f5f0df7SIan Rogers        "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.",
4783f5f0df7SIan Rogers        "SampleAfterValue": "100003",
4793f5f0df7SIan Rogers        "UMask": "0x1"
4803f5f0df7SIan Rogers    },
4813f5f0df7SIan Rogers    {
4823f5f0df7SIan Rogers        "BriefDescription": "Cycles 4 Uops delivered by the LSD, but didn't come from the decoder. [This event is alias to LSD.CYCLES_OK]",
4833f5f0df7SIan Rogers        "CounterMask": "4",
4843f5f0df7SIan Rogers        "EventCode": "0xA8",
4853f5f0df7SIan Rogers        "EventName": "LSD.CYCLES_4_UOPS",
4863f5f0df7SIan Rogers        "PublicDescription": "Counts the cycles when 4 uops are delivered by the LSD (Loop-stream detector). [This event is alias to LSD.CYCLES_OK]",
4873f5f0df7SIan Rogers        "SampleAfterValue": "2000003",
4883f5f0df7SIan Rogers        "UMask": "0x1"
4893f5f0df7SIan Rogers    },
4903f5f0df7SIan Rogers    {
4913f5f0df7SIan Rogers        "BriefDescription": "Cycles Uops delivered by the LSD, but didn't come from the decoder.",
4923f5f0df7SIan Rogers        "CounterMask": "1",
4933f5f0df7SIan Rogers        "EventCode": "0xA8",
4943f5f0df7SIan Rogers        "EventName": "LSD.CYCLES_ACTIVE",
4953f5f0df7SIan Rogers        "PublicDescription": "Counts the cycles when at least one uop is delivered by the LSD (Loop-stream detector).",
4963d05181aSJin Yao        "SampleAfterValue": "2000003",
4973d05181aSJin Yao        "UMask": "0x1"
4983d05181aSJin Yao    },
4993d05181aSJin Yao    {
5003d05181aSJin Yao        "BriefDescription": "Cycles 4 Uops delivered by the LSD, but didn't come from the decoder. [This event is alias to LSD.CYCLES_4_UOPS]",
501c93240a7SAndi Kleen        "CounterMask": "4",
5023d05181aSJin Yao        "EventCode": "0xA8",
503c93240a7SAndi Kleen        "EventName": "LSD.CYCLES_OK",
504c93240a7SAndi Kleen        "PublicDescription": "Counts the cycles when 4 uops are delivered by the LSD (Loop-stream detector). [This event is alias to LSD.CYCLES_4_UOPS]",
5053d05181aSJin Yao        "SampleAfterValue": "2000003",
506c93240a7SAndi Kleen        "UMask": "0x1"
507c93240a7SAndi Kleen    },
5083f5f0df7SIan Rogers    {
5093f5f0df7SIan Rogers        "BriefDescription": "Number of Uops delivered by the LSD.",
5103f5f0df7SIan Rogers        "EventCode": "0xA8",
5113f5f0df7SIan Rogers        "EventName": "LSD.UOPS",
5123f5f0df7SIan Rogers        "PublicDescription": "Number of uops delivered to the back-end by the LSD(Loop Stream Detector).",
5133f5f0df7SIan Rogers        "SampleAfterValue": "2000003",
5143f5f0df7SIan Rogers        "UMask": "0x1"
5153f5f0df7SIan Rogers    },
5163f5f0df7SIan Rogers    {
5173f5f0df7SIan Rogers        "BriefDescription": "Number of machine clears (nukes) of any type.",
5183f5f0df7SIan Rogers        "CounterMask": "1",
5193f5f0df7SIan Rogers        "EdgeDetect": "1",
5203f5f0df7SIan Rogers        "EventCode": "0xC3",
5213f5f0df7SIan Rogers        "EventName": "MACHINE_CLEARS.COUNT",
5223f5f0df7SIan Rogers        "SampleAfterValue": "100003",
5233f5f0df7SIan Rogers        "UMask": "0x1"
5243f5f0df7SIan Rogers    },
5253f5f0df7SIan Rogers    {
5263f5f0df7SIan Rogers        "BriefDescription": "Self-modifying code (SMC) detected.",
5273d05181aSJin Yao        "EventCode": "0xC3",
5283d05181aSJin Yao        "EventName": "MACHINE_CLEARS.SMC",
5293d05181aSJin Yao        "PublicDescription": "Counts self-modifying code (SMC) detected, which causes a machine clear.",
5303d05181aSJin Yao        "SampleAfterValue": "100003",
5313f5f0df7SIan Rogers        "UMask": "0x4"
5323f5f0df7SIan Rogers    },
5333f5f0df7SIan Rogers    {
5343f5f0df7SIan Rogers        "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.",
5353d05181aSJin Yao        "EventCode": "0xC1",
5363d05181aSJin Yao        "EventName": "OTHER_ASSISTS.ANY",
5373d05181aSJin Yao        "SampleAfterValue": "100003",
5383d05181aSJin Yao        "UMask": "0x3f"
5393f5f0df7SIan Rogers    },
5403f5f0df7SIan Rogers    {
5413f5f0df7SIan Rogers        "BriefDescription": "Cycles where the pipeline is stalled due to serializing operations.",
5423f5f0df7SIan Rogers        "EventCode": "0x59",
5433d05181aSJin Yao        "EventName": "PARTIAL_RAT_STALLS.SCOREBOARD",
5443d05181aSJin Yao        "PublicDescription": "This event counts cycles during which the microcode scoreboard stalls happen.",
5453d05181aSJin Yao        "SampleAfterValue": "2000003",
5463d05181aSJin Yao        "UMask": "0x1"
5473f5f0df7SIan Rogers    },
5483f5f0df7SIan Rogers    {
5493f5f0df7SIan Rogers        "BriefDescription": "Resource-related stall cycles",
5503f5f0df7SIan Rogers        "EventCode": "0xa2",
5513f5f0df7SIan Rogers        "EventName": "RESOURCE_STALLS.ANY",
5523f5f0df7SIan Rogers        "PublicDescription": "Counts resource-related stall cycles.",
5533f5f0df7SIan Rogers        "SampleAfterValue": "2000003",
5543f5f0df7SIan Rogers        "UMask": "0x1"
5553f5f0df7SIan Rogers    },
5563f5f0df7SIan Rogers    {
5573f5f0df7SIan Rogers        "BriefDescription": "Cycles stalled due to no store buffers available. (not including draining form sync).",
5583f5f0df7SIan Rogers        "EventCode": "0xA2",
5593f5f0df7SIan Rogers        "EventName": "RESOURCE_STALLS.SB",
5603f5f0df7SIan Rogers        "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.",
5613f5f0df7SIan Rogers        "SampleAfterValue": "2000003",
5623f5f0df7SIan Rogers        "UMask": "0x8"
5633f5f0df7SIan Rogers    },
5643f5f0df7SIan Rogers    {
5653f5f0df7SIan Rogers        "BriefDescription": "Increments whenever there is an update to the LBR array.",
5663f5f0df7SIan Rogers        "EventCode": "0xCC",
5673f5f0df7SIan Rogers        "EventName": "ROB_MISC_EVENTS.LBR_INSERTS",
5683f5f0df7SIan Rogers        "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.",
5693f5f0df7SIan Rogers        "SampleAfterValue": "2000003",
5703f5f0df7SIan Rogers        "UMask": "0x20"
5713d05181aSJin Yao    },
5723f5f0df7SIan Rogers    {
5733f5f0df7SIan Rogers        "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.",
5743f5f0df7SIan Rogers        "EventCode": "0xCC",
5753f5f0df7SIan Rogers        "EventName": "ROB_MISC_EVENTS.PAUSE_INST",
5763f5f0df7SIan Rogers        "SampleAfterValue": "2000003",
5773d05181aSJin Yao        "UMask": "0x40"
5783d05181aSJin Yao    },
5793d05181aSJin Yao    {
5803d05181aSJin Yao        "BriefDescription": "Cycles when Reservation Station (RS) is empty for the thread",
5813d05181aSJin Yao        "EventCode": "0x5E",
5823d05181aSJin Yao        "EventName": "RS_EVENTS.EMPTY_CYCLES",
5833d05181aSJin 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.",
5843d05181aSJin Yao        "SampleAfterValue": "2000003",
5853d05181aSJin Yao        "UMask": "0x1"
5863d05181aSJin Yao    },
5873d05181aSJin Yao    {
5883d05181aSJin Yao        "BriefDescription": "Counts end of periods where the Reservation Station (RS) was empty. Could be useful to precisely locate Frontend Latency Bound issues.",
5893d05181aSJin Yao        "CounterMask": "1",
5903d05181aSJin Yao        "EdgeDetect": "1",
5913d05181aSJin Yao        "EventCode": "0x5E",
5923d05181aSJin Yao        "EventName": "RS_EVENTS.EMPTY_END",
5933d05181aSJin Yao        "Invert": "1",
5943d05181aSJin Yao        "PublicDescription": "Counts end of periods where the Reservation Station (RS) was empty. Could be useful to precisely locate front-end Latency Bound issues.",
5953d05181aSJin Yao        "SampleAfterValue": "2000003",
5963d05181aSJin Yao        "UMask": "0x1"
5973d05181aSJin Yao    },
5983d05181aSJin Yao    {
5993d05181aSJin Yao        "BriefDescription": "Cycles per thread when uops are executed in port 0",
6003d05181aSJin Yao        "EventCode": "0xA1",
6013d05181aSJin Yao        "EventName": "UOPS_DISPATCHED_PORT.PORT_0",
6023d05181aSJin 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.",
6033d05181aSJin Yao        "SampleAfterValue": "2000003",
6043d05181aSJin Yao        "UMask": "0x1"
6053d05181aSJin Yao    },
6063d05181aSJin Yao    {
6073d05181aSJin Yao        "BriefDescription": "Cycles per thread when uops are executed in port 1",
6083d05181aSJin Yao        "EventCode": "0xA1",
6093d05181aSJin Yao        "EventName": "UOPS_DISPATCHED_PORT.PORT_1",
6103d05181aSJin 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.",
6113d05181aSJin Yao        "SampleAfterValue": "2000003",
6123d05181aSJin Yao        "UMask": "0x2"
6133d05181aSJin Yao    },
6143d05181aSJin Yao    {
6153d05181aSJin Yao        "BriefDescription": "Cycles per thread when uops are executed in port 2",
6163d05181aSJin Yao        "EventCode": "0xA1",
6173d05181aSJin Yao        "EventName": "UOPS_DISPATCHED_PORT.PORT_2",
6183d05181aSJin 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.",
6193d05181aSJin Yao        "SampleAfterValue": "2000003",
6203d05181aSJin Yao        "UMask": "0x4"
6213d05181aSJin Yao    },
6223d05181aSJin Yao    {
6233d05181aSJin Yao        "BriefDescription": "Cycles per thread when uops are executed in port 3",
6243d05181aSJin Yao        "EventCode": "0xA1",
6253d05181aSJin Yao        "EventName": "UOPS_DISPATCHED_PORT.PORT_3",
6263d05181aSJin 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.",
6273d05181aSJin Yao        "SampleAfterValue": "2000003",
6283d05181aSJin Yao        "UMask": "0x8"
6293d05181aSJin Yao    },
6303d05181aSJin Yao    {
6313d05181aSJin Yao        "BriefDescription": "Cycles per thread when uops are executed in port 4",
6323d05181aSJin Yao        "EventCode": "0xA1",
6333d05181aSJin Yao        "EventName": "UOPS_DISPATCHED_PORT.PORT_4",
6343d05181aSJin 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.",
6353d05181aSJin Yao        "SampleAfterValue": "2000003",
6363d05181aSJin Yao        "UMask": "0x10"
6373d05181aSJin Yao    },
6383d05181aSJin Yao    {
6393d05181aSJin Yao        "BriefDescription": "Cycles per thread when uops are executed in port 5",
6403d05181aSJin Yao        "EventCode": "0xA1",
6413d05181aSJin Yao        "EventName": "UOPS_DISPATCHED_PORT.PORT_5",
6423d05181aSJin 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.",
6433d05181aSJin Yao        "SampleAfterValue": "2000003",
6443d05181aSJin Yao        "UMask": "0x20"
6453f5f0df7SIan Rogers    },
6463d05181aSJin Yao    {
6473f5f0df7SIan Rogers        "BriefDescription": "Cycles per thread when uops are executed in port 6",
6483f5f0df7SIan Rogers        "EventCode": "0xA1",
6493d05181aSJin Yao        "EventName": "UOPS_DISPATCHED_PORT.PORT_6",
6503d05181aSJin 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.",
6513d05181aSJin Yao        "SampleAfterValue": "2000003",
6523d05181aSJin Yao        "UMask": "0x40"
6533d05181aSJin Yao    },
6543d05181aSJin Yao    {
6553d05181aSJin Yao        "BriefDescription": "Cycles per thread when uops are executed in port 7",
6563d05181aSJin Yao        "EventCode": "0xA1",
6573d05181aSJin Yao        "EventName": "UOPS_DISPATCHED_PORT.PORT_7",
6583d05181aSJin 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.",
6593d05181aSJin Yao        "SampleAfterValue": "2000003",
6603d05181aSJin Yao        "UMask": "0x80"
6613f5f0df7SIan Rogers    },
6623f5f0df7SIan Rogers    {
6633f5f0df7SIan Rogers        "BriefDescription": "Number of uops executed on the core.",
6643f5f0df7SIan Rogers        "EventCode": "0xB1",
6653f5f0df7SIan Rogers        "EventName": "UOPS_EXECUTED.CORE",
6663f5f0df7SIan Rogers        "PublicDescription": "Number of uops executed from any thread.",
6673f5f0df7SIan Rogers        "SampleAfterValue": "2000003",
6683f5f0df7SIan Rogers        "UMask": "0x2"
6693f5f0df7SIan Rogers    },
6703f5f0df7SIan Rogers    {
6713f5f0df7SIan Rogers        "BriefDescription": "Cycles at least 1 micro-op is executed from any thread on physical core.",
6723f5f0df7SIan Rogers        "CounterMask": "1",
6733f5f0df7SIan Rogers        "EventCode": "0xB1",
6743f5f0df7SIan Rogers        "EventName": "UOPS_EXECUTED.CORE_CYCLES_GE_1",
6753f5f0df7SIan Rogers        "SampleAfterValue": "2000003",
6763f5f0df7SIan Rogers        "UMask": "0x2"
6773d05181aSJin Yao    },
6783d05181aSJin Yao    {
6793d05181aSJin Yao        "BriefDescription": "Cycles at least 2 micro-op is executed from any thread on physical core.",
6803d05181aSJin Yao        "CounterMask": "2",
6813d05181aSJin Yao        "EventCode": "0xB1",
6823d05181aSJin Yao        "EventName": "UOPS_EXECUTED.CORE_CYCLES_GE_2",
6833d05181aSJin Yao        "SampleAfterValue": "2000003",
6843d05181aSJin Yao        "UMask": "0x2"
6853f5f0df7SIan Rogers    },
6863d05181aSJin Yao    {
6873f5f0df7SIan Rogers        "BriefDescription": "Cycles at least 3 micro-op is executed from any thread on physical core.",
6883f5f0df7SIan Rogers        "CounterMask": "3",
6893d05181aSJin Yao        "EventCode": "0xB1",
6903d05181aSJin Yao        "EventName": "UOPS_EXECUTED.CORE_CYCLES_GE_3",
6913d05181aSJin Yao        "SampleAfterValue": "2000003",
6923d05181aSJin Yao        "UMask": "0x2"
6933d05181aSJin Yao    },
6943f5f0df7SIan Rogers    {
6953d05181aSJin Yao        "BriefDescription": "Cycles at least 4 micro-op is executed from any thread on physical core.",
6963f5f0df7SIan Rogers        "CounterMask": "4",
6973f5f0df7SIan Rogers        "EventCode": "0xB1",
6983f5f0df7SIan Rogers        "EventName": "UOPS_EXECUTED.CORE_CYCLES_GE_4",
6993d05181aSJin Yao        "SampleAfterValue": "2000003",
7003d05181aSJin Yao        "UMask": "0x2"
7013d05181aSJin Yao    },
7023d05181aSJin Yao    {
7033f5f0df7SIan Rogers        "BriefDescription": "Cycles with no micro-ops executed from any thread on physical core.",
7043f5f0df7SIan Rogers        "CounterMask": "1",
7053f5f0df7SIan Rogers        "EventCode": "0xB1",
7063f5f0df7SIan Rogers        "EventName": "UOPS_EXECUTED.CORE_CYCLES_NONE",
7073f5f0df7SIan Rogers        "Invert": "1",
7083d05181aSJin Yao        "SampleAfterValue": "2000003",
7093d05181aSJin Yao        "UMask": "0x2"
7103d05181aSJin Yao    },
7113d05181aSJin Yao    {
7123f5f0df7SIan Rogers        "BriefDescription": "Cycles where at least 1 uop was executed per-thread",
7133f5f0df7SIan Rogers        "CounterMask": "1",
7143f5f0df7SIan Rogers        "EventCode": "0xB1",
7153f5f0df7SIan Rogers        "EventName": "UOPS_EXECUTED.CYCLES_GE_1_UOP_EXEC",
7163f5f0df7SIan Rogers        "PublicDescription": "Cycles where at least 1 uop was executed per-thread.",
7173d05181aSJin Yao        "SampleAfterValue": "2000003",
7183d05181aSJin Yao        "UMask": "0x1"
7193d05181aSJin Yao    },
7203d05181aSJin Yao    {
7213d05181aSJin Yao        "BriefDescription": "Cycles where at least 2 uops were executed per-thread",
7223d05181aSJin Yao        "CounterMask": "2",
7233d05181aSJin Yao        "EventCode": "0xB1",
7243d05181aSJin Yao        "EventName": "UOPS_EXECUTED.CYCLES_GE_2_UOPS_EXEC",
7253d05181aSJin Yao        "PublicDescription": "Cycles where at least 2 uops were executed per-thread.",
7263d05181aSJin Yao        "SampleAfterValue": "2000003",
7273d05181aSJin Yao        "UMask": "0x1"
7283d05181aSJin Yao    },
7293d05181aSJin Yao    {
7303f5f0df7SIan Rogers        "BriefDescription": "Cycles where at least 3 uops were executed per-thread",
7313f5f0df7SIan Rogers        "CounterMask": "3",
7323f5f0df7SIan Rogers        "EventCode": "0xB1",
7333f5f0df7SIan Rogers        "EventName": "UOPS_EXECUTED.CYCLES_GE_3_UOPS_EXEC",
7343f5f0df7SIan Rogers        "PublicDescription": "Cycles where at least 3 uops were executed per-thread.",
7353f5f0df7SIan Rogers        "SampleAfterValue": "2000003",
7363f5f0df7SIan Rogers        "UMask": "0x1"
7373f5f0df7SIan Rogers    },
7383f5f0df7SIan Rogers    {
7393f5f0df7SIan Rogers        "BriefDescription": "Cycles where at least 4 uops were executed per-thread",
7403f5f0df7SIan Rogers        "CounterMask": "4",
7413f5f0df7SIan Rogers        "EventCode": "0xB1",
7423f5f0df7SIan Rogers        "EventName": "UOPS_EXECUTED.CYCLES_GE_4_UOPS_EXEC",
7433f5f0df7SIan Rogers        "PublicDescription": "Cycles where at least 4 uops were executed per-thread.",
7443f5f0df7SIan Rogers        "SampleAfterValue": "2000003",
7453f5f0df7SIan Rogers        "UMask": "0x1"
7463f5f0df7SIan Rogers    },
7473f5f0df7SIan Rogers    {
7483f5f0df7SIan Rogers        "BriefDescription": "Counts number of cycles no uops were dispatched to be executed on this thread.",
7493f5f0df7SIan Rogers        "CounterMask": "1",
7503f5f0df7SIan Rogers        "EventCode": "0xB1",
7513f5f0df7SIan Rogers        "EventName": "UOPS_EXECUTED.STALL_CYCLES",
7523f5f0df7SIan Rogers        "Invert": "1",
7533f5f0df7SIan Rogers        "PublicDescription": "Counts cycles during which no uops were dispatched from the Reservation Station (RS) per thread.",
7543f5f0df7SIan Rogers        "SampleAfterValue": "2000003",
7553f5f0df7SIan Rogers        "UMask": "0x1"
7563f5f0df7SIan Rogers    },
7573f5f0df7SIan Rogers    {
7583f5f0df7SIan Rogers        "BriefDescription": "Counts the number of uops to be executed per-thread each cycle.",
7593f5f0df7SIan Rogers        "EventCode": "0xB1",
7603f5f0df7SIan Rogers        "EventName": "UOPS_EXECUTED.THREAD",
7613f5f0df7SIan Rogers        "PublicDescription": "Number of uops to be executed per-thread each cycle.",
7623f5f0df7SIan Rogers        "SampleAfterValue": "2000003",
7633f5f0df7SIan Rogers        "UMask": "0x1"
7643f5f0df7SIan Rogers    },
7653f5f0df7SIan Rogers    {
7663f5f0df7SIan Rogers        "BriefDescription": "Counts the number of x87 uops dispatched.",
7673f5f0df7SIan Rogers        "EventCode": "0xB1",
7683d05181aSJin Yao        "EventName": "UOPS_EXECUTED.X87",
7693d05181aSJin Yao        "PublicDescription": "Counts the number of x87 uops executed.",
7703d05181aSJin Yao        "SampleAfterValue": "2000003",
7713f5f0df7SIan Rogers        "UMask": "0x10"
7723f5f0df7SIan Rogers    },
7733f5f0df7SIan Rogers    {
7743f5f0df7SIan Rogers        "BriefDescription": "Uops that Resource Allocation Table (RAT) issues to Reservation Station (RS)",
7753d05181aSJin Yao        "EventCode": "0x0E",
7763f5f0df7SIan Rogers        "EventName": "UOPS_ISSUED.ANY",
7773d05181aSJin Yao        "PublicDescription": "Counts the number of uops that the Resource Allocation Table (RAT) issues to the Reservation Station (RS).",
7783d05181aSJin Yao        "SampleAfterValue": "2000003",
7793d05181aSJin Yao        "UMask": "0x1"
7803d05181aSJin Yao    },
7813d05181aSJin Yao    {
7823d05181aSJin 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.",
7833d05181aSJin Yao        "EventCode": "0x0E",
7843d05181aSJin Yao        "EventName": "UOPS_ISSUED.SLOW_LEA",
7853d05181aSJin Yao        "SampleAfterValue": "2000003",
7863d05181aSJin Yao        "UMask": "0x20"
7873d05181aSJin Yao    },
7883d05181aSJin Yao    {
7893d05181aSJin Yao        "BriefDescription": "Cycles when Resource Allocation Table (RAT) does not issue Uops to Reservation Station (RS) for the thread",
7903d05181aSJin Yao        "CounterMask": "1",
7913d05181aSJin Yao        "EventCode": "0x0E",
7923d05181aSJin Yao        "EventName": "UOPS_ISSUED.STALL_CYCLES",
7933d05181aSJin Yao        "Invert": "1",
7943d05181aSJin 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.",
7953d05181aSJin Yao        "SampleAfterValue": "2000003",
7963d05181aSJin Yao        "UMask": "0x1"
7973f5f0df7SIan Rogers    },
7983f5f0df7SIan Rogers    {
7993f5f0df7SIan Rogers        "BriefDescription": "Uops inserted at issue-stage in order to preserve upper bits of vector registers.",
8003f5f0df7SIan Rogers        "EventCode": "0x0E",
8013d05181aSJin Yao        "EventName": "UOPS_ISSUED.VECTOR_WIDTH_MISMATCH",
8023d05181aSJin 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.",
8033d05181aSJin Yao        "SampleAfterValue": "2000003",
8043d05181aSJin Yao        "UMask": "0x2"
8053f5f0df7SIan Rogers    },
8063d05181aSJin Yao    {
8073f5f0df7SIan Rogers        "BriefDescription": "Number of macro-fused uops retired. (non precise)",
8083f5f0df7SIan Rogers        "EventCode": "0xc2",
8093f5f0df7SIan Rogers        "EventName": "UOPS_RETIRED.MACRO_FUSED",
8103f5f0df7SIan Rogers        "PublicDescription": "Counts the number of macro-fused uops retired. (non precise)",
8113d05181aSJin Yao        "SampleAfterValue": "2000003",
8123d05181aSJin Yao        "UMask": "0x4"
8133d05181aSJin Yao    },
8143d05181aSJin Yao    {
8153f5f0df7SIan Rogers        "BriefDescription": "Retirement slots used.",
81602c758d2SIan Rogers        "EventCode": "0xC2",
8173f5f0df7SIan Rogers        "EventName": "UOPS_RETIRED.RETIRE_SLOTS",
8183f5f0df7SIan Rogers        "PublicDescription": "Counts the retirement slots used.",
8193f5f0df7SIan Rogers        "SampleAfterValue": "2000003",
8203f5f0df7SIan Rogers        "UMask": "0x2"
8213d05181aSJin Yao    },
8223d05181aSJin Yao    {
82347cbd67eSAndi Kleen        "BriefDescription": "Cycles without actually retired uops.",
82447cbd67eSAndi Kleen        "CounterMask": "1",
825        "EventCode": "0xC2",
826        "EventName": "UOPS_RETIRED.STALL_CYCLES",
827        "Invert": "1",
828        "PublicDescription": "This event counts cycles without actually retired uops.",
829        "SampleAfterValue": "2000003",
830        "UMask": "0x2"
831    },
832    {
833        "BriefDescription": "Cycles with less than 10 actually retired uops.",
834        "CounterMask": "16",
835        "EventCode": "0xC2",
836        "EventName": "UOPS_RETIRED.TOTAL_CYCLES",
837        "Invert": "1",
838        "PublicDescription": "Number of cycles using always true condition (uops_ret < 16) applied to non PEBS uops retired event.",
839        "SampleAfterValue": "2000003",
840        "UMask": "0x2"
841    }
842]
843