xref: /openbmc/linux/tools/perf/pmu-events/arch/x86/skylake/frontend.json (revision 1ac731c529cd4d6adbce134754b51ff7d822b145)
147cbd67eSAndi Kleen[
247cbd67eSAndi Kleen    {
33f5f0df7SIan Rogers        "BriefDescription": "Counts the total number when the front end is resteered, mainly when the BPU cannot provide a correct prediction and this is corrected by other branch handling mechanisms at the front end.",
43f5f0df7SIan Rogers        "EventCode": "0xE6",
53f5f0df7SIan Rogers        "EventName": "BACLEARS.ANY",
63f5f0df7SIan Rogers        "PublicDescription": "Counts the number of times the front-end is resteered when it finds a branch instruction in a fetch line. This occurs for the first time a branch instruction is fetched or when the branch is not tracked by the BPU (Branch Prediction Unit) anymore.",
73f5f0df7SIan Rogers        "SampleAfterValue": "100003",
83f5f0df7SIan Rogers        "UMask": "0x1"
93f5f0df7SIan Rogers    },
103f5f0df7SIan Rogers    {
113f5f0df7SIan Rogers        "BriefDescription": "Stalls caused by changing prefix length of the instruction. [This event is alias to ILD_STALL.LCP]",
123f5f0df7SIan Rogers        "EventCode": "0x87",
133f5f0df7SIan Rogers        "EventName": "DECODE.LCP",
143f5f0df7SIan 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 ILD_STALL.LCP]",
1547cbd67eSAndi Kleen        "SampleAfterValue": "2000003",
163f5f0df7SIan Rogers        "UMask": "0x1"
173f5f0df7SIan Rogers    },
183f5f0df7SIan Rogers    {
193f5f0df7SIan Rogers        "BriefDescription": "Decode Stream Buffer (DSB)-to-MITE switches",
203f5f0df7SIan Rogers        "EventCode": "0xAB",
213f5f0df7SIan Rogers        "EventName": "DSB2MITE_SWITCHES.COUNT",
223f5f0df7SIan Rogers        "PublicDescription": "This event counts the number of the Decode Stream Buffer (DSB)-to-MITE switches including all misses because of missing Decode Stream Buffer (DSB) cache and u-arch forced misses.\nNote: Invoking MITE requires two or three cycles delay.",
233f5f0df7SIan Rogers        "SampleAfterValue": "2000003",
243f5f0df7SIan Rogers        "UMask": "0x1"
253f5f0df7SIan Rogers    },
263f5f0df7SIan Rogers    {
273f5f0df7SIan Rogers        "BriefDescription": "Decode Stream Buffer (DSB)-to-MITE switch true penalty cycles.",
283f5f0df7SIan Rogers        "EventCode": "0xAB",
293f5f0df7SIan Rogers        "EventName": "DSB2MITE_SWITCHES.PENALTY_CYCLES",
303f5f0df7SIan Rogers        "PublicDescription": "Counts Decode Stream Buffer (DSB)-to-MITE switch true penalty cycles. These cycles do not include uops routed through because of the switch itself, for example, when Instruction Decode Queue (IDQ) pre-allocation is unavailable, or Instruction Decode Queue (IDQ) is full. SBD-to-MITE switch true penalty cycles happen after the merge mux (MM) receives Decode Stream Buffer (DSB) Sync-indication until receiving the first MITE uop. MM is placed before Instruction Decode Queue (IDQ) to merge uops being fed from the MITE and Decode Stream Buffer (DSB) paths. Decode Stream Buffer (DSB) inserts the Sync-indication whenever a Decode Stream Buffer (DSB)-to-MITE switch occurs.Penalty: A Decode Stream Buffer (DSB) hit followed by a Decode Stream Buffer (DSB) miss can cost up to six cycles in which no uops are delivered to the IDQ. Most often, such switches from the Decode Stream Buffer (DSB) to the legacy pipeline cost 02 cycles.",
313f5f0df7SIan Rogers        "SampleAfterValue": "2000003",
323f5f0df7SIan Rogers        "UMask": "0x2"
333f5f0df7SIan Rogers    },
343f5f0df7SIan Rogers    {
353f5f0df7SIan Rogers        "BriefDescription": "Retired Instructions who experienced DSB miss.",
363f5f0df7SIan Rogers        "EventCode": "0xC6",
373f5f0df7SIan Rogers        "EventName": "FRONTEND_RETIRED.ANY_DSB_MISS",
383f5f0df7SIan Rogers        "MSRIndex": "0x3F7",
393f5f0df7SIan Rogers        "MSRValue": "0x1",
403f5f0df7SIan Rogers        "PEBS": "1",
413f5f0df7SIan Rogers        "PublicDescription": "Counts retired Instructions that experienced DSB (Decode stream buffer i.e. the decoded instruction-cache) miss.",
423f5f0df7SIan Rogers        "SampleAfterValue": "100007",
433f5f0df7SIan Rogers        "UMask": "0x1"
443f5f0df7SIan Rogers    },
453f5f0df7SIan Rogers    {
463f5f0df7SIan Rogers        "BriefDescription": "Retired Instructions who experienced a critical DSB miss.",
4747cbd67eSAndi Kleen        "EventCode": "0xC6",
4847cbd67eSAndi Kleen        "EventName": "FRONTEND_RETIRED.DSB_MISS",
493d05181aSJin Yao        "MSRIndex": "0x3F7",
5047cbd67eSAndi Kleen        "MSRValue": "0x11",
5147cbd67eSAndi Kleen        "PEBS": "1",
5247cbd67eSAndi Kleen        "PublicDescription": "Number of retired Instructions that experienced a critical DSB (Decode stream buffer i.e. the decoded instruction-cache) miss. Critical means stalls were exposed to the back-end as a result of the DSB miss.",
533d05181aSJin Yao        "SampleAfterValue": "100007",
543d05181aSJin Yao        "UMask": "0x1"
553d05181aSJin Yao    },
5647cbd67eSAndi Kleen    {
573d05181aSJin Yao        "BriefDescription": "Retired Instructions who experienced iTLB true miss.",
5847cbd67eSAndi Kleen        "EventCode": "0xC6",
5947cbd67eSAndi Kleen        "EventName": "FRONTEND_RETIRED.ITLB_MISS",
603f5f0df7SIan Rogers        "MSRIndex": "0x3F7",
6147cbd67eSAndi Kleen        "MSRValue": "0x14",
623f5f0df7SIan Rogers        "PEBS": "1",
6347cbd67eSAndi Kleen        "PublicDescription": "Counts retired Instructions that experienced iTLB (Instruction TLB) true miss.",
643f5f0df7SIan Rogers        "SampleAfterValue": "100007",
653d05181aSJin Yao        "UMask": "0x1"
6647cbd67eSAndi Kleen    },
673d05181aSJin Yao    {
6847cbd67eSAndi Kleen        "BriefDescription": "Retired Instructions who experienced Instruction L1 Cache true miss.",
6947cbd67eSAndi Kleen        "EventCode": "0xC6",
703d05181aSJin Yao        "EventName": "FRONTEND_RETIRED.L1I_MISS",
713d05181aSJin Yao        "MSRIndex": "0x3F7",
723d05181aSJin Yao        "MSRValue": "0x12",
733d05181aSJin Yao        "PEBS": "1",
743d05181aSJin Yao        "SampleAfterValue": "100007",
753d05181aSJin Yao        "UMask": "0x1"
763d05181aSJin Yao    },
773d05181aSJin Yao    {
783d05181aSJin Yao        "BriefDescription": "Retired Instructions who experienced Instruction L2 Cache true miss.",
793d05181aSJin Yao        "EventCode": "0xC6",
803d05181aSJin Yao        "EventName": "FRONTEND_RETIRED.L2_MISS",
813d05181aSJin Yao        "MSRIndex": "0x3F7",
823d05181aSJin Yao        "MSRValue": "0x13",
833d05181aSJin Yao        "PEBS": "1",
843d05181aSJin Yao        "SampleAfterValue": "100007",
853d05181aSJin Yao        "UMask": "0x1"
863d05181aSJin Yao    },
873d05181aSJin Yao    {
883d05181aSJin Yao        "BriefDescription": "Retired instructions after front-end starvation of at least 1 cycle",
893d05181aSJin Yao        "EventCode": "0xc6",
903d05181aSJin Yao        "EventName": "FRONTEND_RETIRED.LATENCY_GE_1",
913f5f0df7SIan Rogers        "MSRIndex": "0x3F7",
923f5f0df7SIan Rogers        "MSRValue": "0x400106",
933f5f0df7SIan Rogers        "PEBS": "2",
943f5f0df7SIan Rogers        "PublicDescription": "Retired instructions that are fetched after an interval where the front-end delivered no uops for a period of at least 1 cycle which was not interrupted by a back-end stall.",
953f5f0df7SIan Rogers        "SampleAfterValue": "100007",
963f5f0df7SIan Rogers        "UMask": "0x1"
973f5f0df7SIan Rogers    },
983f5f0df7SIan Rogers    {
993f5f0df7SIan Rogers        "BriefDescription": "Retired instructions that are fetched after an interval where the front-end delivered no uops for a period of 128 cycles which was not interrupted by a back-end stall.",
1003f5f0df7SIan Rogers        "EventCode": "0xC6",
1013f5f0df7SIan Rogers        "EventName": "FRONTEND_RETIRED.LATENCY_GE_128",
1023f5f0df7SIan Rogers        "MSRIndex": "0x3F7",
1033f5f0df7SIan Rogers        "MSRValue": "0x408006",
1043f5f0df7SIan Rogers        "PEBS": "1",
1053f5f0df7SIan Rogers        "SampleAfterValue": "100007",
1063f5f0df7SIan Rogers        "UMask": "0x1"
1073f5f0df7SIan Rogers    },
1083f5f0df7SIan Rogers    {
1093f5f0df7SIan Rogers        "BriefDescription": "Retired instructions that are fetched after an interval where the front-end delivered no uops for a period of 16 cycles which was not interrupted by a back-end stall.",
1103f5f0df7SIan Rogers        "EventCode": "0xC6",
1113f5f0df7SIan Rogers        "EventName": "FRONTEND_RETIRED.LATENCY_GE_16",
1123d05181aSJin Yao        "MSRIndex": "0x3F7",
1133d05181aSJin Yao        "MSRValue": "0x401006",
1143d05181aSJin Yao        "PEBS": "1",
1153d05181aSJin Yao        "PublicDescription": "Counts retired instructions that are delivered to the back-end after a front-end stall of at least 16 cycles. During this period the front-end delivered no uops.",
1163d05181aSJin Yao        "SampleAfterValue": "100007",
1173d05181aSJin Yao        "UMask": "0x1"
1183d05181aSJin Yao    },
1193d05181aSJin Yao    {
1203d05181aSJin Yao        "BriefDescription": "Retired instructions that are fetched after an interval where the front-end delivered no uops for a period of 2 cycles which was not interrupted by a back-end stall.",
1213d05181aSJin Yao        "EventCode": "0xC6",
1223d05181aSJin Yao        "EventName": "FRONTEND_RETIRED.LATENCY_GE_2",
1233d05181aSJin Yao        "MSRIndex": "0x3F7",
1243d05181aSJin Yao        "MSRValue": "0x400206",
1253d05181aSJin Yao        "PEBS": "1",
1263d05181aSJin Yao        "SampleAfterValue": "100007",
1273d05181aSJin Yao        "UMask": "0x1"
1283d05181aSJin Yao    },
1293d05181aSJin Yao    {
1303d05181aSJin Yao        "BriefDescription": "Retired instructions that are fetched after an interval where the front-end delivered no uops for a period of 256 cycles which was not interrupted by a back-end stall.",
1313d05181aSJin Yao        "EventCode": "0xC6",
1323f5f0df7SIan Rogers        "EventName": "FRONTEND_RETIRED.LATENCY_GE_256",
1333f5f0df7SIan Rogers        "MSRIndex": "0x3F7",
1343f5f0df7SIan Rogers        "MSRValue": "0x410006",
1353f5f0df7SIan Rogers        "PEBS": "1",
1363f5f0df7SIan Rogers        "SampleAfterValue": "100007",
1373f5f0df7SIan Rogers        "UMask": "0x1"
1383f5f0df7SIan Rogers    },
1393f5f0df7SIan Rogers    {
1403f5f0df7SIan Rogers        "BriefDescription": "Retired instructions that are fetched after an interval where the front-end had at least 1 bubble-slot for a period of 2 cycles which was not interrupted by a back-end stall.",
1413f5f0df7SIan Rogers        "EventCode": "0xC6",
1423f5f0df7SIan Rogers        "EventName": "FRONTEND_RETIRED.LATENCY_GE_2_BUBBLES_GE_1",
1433d05181aSJin Yao        "MSRIndex": "0x3F7",
1443d05181aSJin Yao        "MSRValue": "0x100206",
1453d05181aSJin Yao        "PEBS": "1",
1463d05181aSJin Yao        "PublicDescription": "Counts retired instructions that are delivered to the back-end after the front-end had at least 1 bubble-slot for a period of 2 cycles. A bubble-slot is an empty issue-pipeline slot while there was no RAT stall.",
1473d05181aSJin Yao        "SampleAfterValue": "100007",
1483d05181aSJin Yao        "UMask": "0x1"
1493d05181aSJin Yao    },
1503d05181aSJin Yao    {
1513d05181aSJin Yao        "BriefDescription": "Retired instructions that are fetched after an interval where the front-end had at least 2 bubble-slots for a period of 2 cycles which was not interrupted by a back-end stall.",
1523d05181aSJin Yao        "EventCode": "0xC6",
1533d05181aSJin Yao        "EventName": "FRONTEND_RETIRED.LATENCY_GE_2_BUBBLES_GE_2",
1543d05181aSJin Yao        "MSRIndex": "0x3F7",
15547cbd67eSAndi Kleen        "MSRValue": "0x200206",
15647cbd67eSAndi Kleen        "PEBS": "1",
1573d05181aSJin Yao        "SampleAfterValue": "100007",
1583d05181aSJin Yao        "UMask": "0x1"
15947cbd67eSAndi Kleen    },
1603d05181aSJin Yao    {
1613d05181aSJin Yao        "BriefDescription": "Retired instructions that are fetched after an interval where the front-end had at least 3 bubble-slots for a period of 2 cycles which was not interrupted by a back-end stall.",
1623d05181aSJin Yao        "EventCode": "0xC6",
1633d05181aSJin Yao        "EventName": "FRONTEND_RETIRED.LATENCY_GE_2_BUBBLES_GE_3",
1643d05181aSJin Yao        "MSRIndex": "0x3F7",
1653d05181aSJin Yao        "MSRValue": "0x300206",
1663d05181aSJin Yao        "PEBS": "1",
1673d05181aSJin Yao        "SampleAfterValue": "100007",
1683d05181aSJin Yao        "UMask": "0x1"
1693d05181aSJin Yao    },
1703d05181aSJin Yao    {
1713d05181aSJin Yao        "BriefDescription": "Retired instructions that are fetched after an interval where the front-end delivered no uops for a period of 32 cycles which was not interrupted by a back-end stall.",
1723d05181aSJin Yao        "EventCode": "0xC6",
1733d05181aSJin Yao        "EventName": "FRONTEND_RETIRED.LATENCY_GE_32",
1743f5f0df7SIan Rogers        "MSRIndex": "0x3F7",
1753f5f0df7SIan Rogers        "MSRValue": "0x402006",
1763f5f0df7SIan Rogers        "PEBS": "1",
1773f5f0df7SIan Rogers        "PublicDescription": "Counts retired instructions that are delivered to the back-end after a front-end stall of at least 32 cycles. During this period the front-end delivered no uops.",
1783f5f0df7SIan Rogers        "SampleAfterValue": "100007",
1793f5f0df7SIan Rogers        "UMask": "0x1"
1803f5f0df7SIan Rogers    },
1813f5f0df7SIan Rogers    {
1823f5f0df7SIan Rogers        "BriefDescription": "Retired instructions that are fetched after an interval where the front-end delivered no uops for a period of 4 cycles which was not interrupted by a back-end stall.",
1833f5f0df7SIan Rogers        "EventCode": "0xC6",
1843f5f0df7SIan Rogers        "EventName": "FRONTEND_RETIRED.LATENCY_GE_4",
1853f5f0df7SIan Rogers        "MSRIndex": "0x3F7",
1863f5f0df7SIan Rogers        "MSRValue": "0x400406",
1873f5f0df7SIan Rogers        "PEBS": "1",
1883f5f0df7SIan Rogers        "SampleAfterValue": "100007",
1893f5f0df7SIan Rogers        "UMask": "0x1"
1903f5f0df7SIan Rogers    },
1913f5f0df7SIan Rogers    {
1923f5f0df7SIan Rogers        "BriefDescription": "Retired instructions that are fetched after an interval where the front-end delivered no uops for a period of 512 cycles which was not interrupted by a back-end stall.",
1933f5f0df7SIan Rogers        "EventCode": "0xC6",
1943f5f0df7SIan Rogers        "EventName": "FRONTEND_RETIRED.LATENCY_GE_512",
1953f5f0df7SIan Rogers        "MSRIndex": "0x3F7",
1963f5f0df7SIan Rogers        "MSRValue": "0x420006",
1973f5f0df7SIan Rogers        "PEBS": "1",
1983f5f0df7SIan Rogers        "SampleAfterValue": "100007",
1993f5f0df7SIan Rogers        "UMask": "0x1"
2003f5f0df7SIan Rogers    },
2013f5f0df7SIan Rogers    {
2023f5f0df7SIan Rogers        "BriefDescription": "Retired instructions that are fetched after an interval where the front-end delivered no uops for a period of 64 cycles which was not interrupted by a back-end stall.",
2033f5f0df7SIan Rogers        "EventCode": "0xC6",
2043f5f0df7SIan Rogers        "EventName": "FRONTEND_RETIRED.LATENCY_GE_64",
2053f5f0df7SIan Rogers        "MSRIndex": "0x3F7",
2063f5f0df7SIan Rogers        "MSRValue": "0x404006",
2073f5f0df7SIan Rogers        "PEBS": "1",
2083f5f0df7SIan Rogers        "SampleAfterValue": "100007",
2093f5f0df7SIan Rogers        "UMask": "0x1"
2103f5f0df7SIan Rogers    },
2113f5f0df7SIan Rogers    {
2123f5f0df7SIan Rogers        "BriefDescription": "Retired instructions that are fetched after an interval where the front-end delivered no uops for a period of 8 cycles which was not interrupted by a back-end stall.",
2133f5f0df7SIan Rogers        "EventCode": "0xC6",
2143f5f0df7SIan Rogers        "EventName": "FRONTEND_RETIRED.LATENCY_GE_8",
2153f5f0df7SIan Rogers        "MSRIndex": "0x3F7",
2163f5f0df7SIan Rogers        "MSRValue": "0x400806",
2173f5f0df7SIan Rogers        "PEBS": "1",
2183f5f0df7SIan Rogers        "PublicDescription": "Counts retired instructions that are delivered to the back-end after a front-end stall of at least 8 cycles. During this period the front-end delivered no uops.",
2193f5f0df7SIan Rogers        "SampleAfterValue": "100007",
2203f5f0df7SIan Rogers        "UMask": "0x1"
2213f5f0df7SIan Rogers    },
2223f5f0df7SIan Rogers    {
2233f5f0df7SIan Rogers        "BriefDescription": "Retired Instructions who experienced STLB (2nd level TLB) true miss.",
2243f5f0df7SIan Rogers        "EventCode": "0xC6",
2253f5f0df7SIan Rogers        "EventName": "FRONTEND_RETIRED.STLB_MISS",
2263f5f0df7SIan Rogers        "MSRIndex": "0x3F7",
2273f5f0df7SIan Rogers        "MSRValue": "0x15",
2283f5f0df7SIan Rogers        "PEBS": "1",
2293f5f0df7SIan Rogers        "PublicDescription": "Counts retired Instructions that experienced STLB (2nd level TLB) true miss.",
2303d05181aSJin Yao        "SampleAfterValue": "100007",
2313f5f0df7SIan Rogers        "UMask": "0x1"
2323f5f0df7SIan Rogers    },
2333f5f0df7SIan Rogers    {
2343f5f0df7SIan Rogers        "BriefDescription": "Cycles where a code fetch is stalled due to L1 instruction cache miss.",
2353f5f0df7SIan Rogers        "EventCode": "0x80",
2363f5f0df7SIan Rogers        "EventName": "ICACHE_16B.IFDATA_STALL",
2373f5f0df7SIan Rogers        "PublicDescription": "Cycles where a code line fetch is stalled due to an L1 instruction cache miss. The legacy decode pipeline works at a 16 Byte granularity.",
2383d05181aSJin Yao        "SampleAfterValue": "2000003",
2393d05181aSJin Yao        "UMask": "0x4"
2403d05181aSJin Yao    },
2413d05181aSJin Yao    {
2423d05181aSJin Yao        "BriefDescription": "Instruction fetch tag lookups that hit in the instruction cache (L1I). Counts at 64-byte cache-line granularity.",
2433d05181aSJin Yao        "EventCode": "0x83",
2443d05181aSJin Yao        "EventName": "ICACHE_64B.IFTAG_HIT",
2453d05181aSJin Yao        "SampleAfterValue": "200003",
2463d05181aSJin Yao        "UMask": "0x1"
2473d05181aSJin Yao    },
2483f5f0df7SIan Rogers    {
2493f5f0df7SIan Rogers        "BriefDescription": "Instruction fetch tag lookups that miss in the instruction cache (L1I). Counts at 64-byte cache-line granularity.",
2503f5f0df7SIan Rogers        "EventCode": "0x83",
2513f5f0df7SIan Rogers        "EventName": "ICACHE_64B.IFTAG_MISS",
2523f5f0df7SIan Rogers        "SampleAfterValue": "200003",
2533f5f0df7SIan Rogers        "UMask": "0x2"
2543f5f0df7SIan Rogers    },
2553f5f0df7SIan Rogers    {
2563f5f0df7SIan Rogers        "BriefDescription": "Cycles where a code fetch is stalled due to L1 instruction cache tag miss. [This event is alias to ICACHE_TAG.STALLS]",
2573f5f0df7SIan Rogers        "EventCode": "0x83",
2583f5f0df7SIan Rogers        "EventName": "ICACHE_64B.IFTAG_STALL",
2593f5f0df7SIan Rogers        "SampleAfterValue": "200003",
2603f5f0df7SIan Rogers        "UMask": "0x4"
2613f5f0df7SIan Rogers    },
2623f5f0df7SIan Rogers    {
2633f5f0df7SIan Rogers        "BriefDescription": "Cycles where a code fetch is stalled due to L1 instruction cache tag miss. [This event is alias to ICACHE_64B.IFTAG_STALL]",
2643f5f0df7SIan Rogers        "EventCode": "0x83",
2653f5f0df7SIan Rogers        "EventName": "ICACHE_TAG.STALLS",
2663f5f0df7SIan Rogers        "SampleAfterValue": "200003",
2673f5f0df7SIan Rogers        "UMask": "0x4"
2683f5f0df7SIan Rogers    },
2693f5f0df7SIan Rogers    {
2703f5f0df7SIan Rogers        "BriefDescription": "Cycles Decode Stream Buffer (DSB) is delivering 4 Uops [This event is alias to IDQ.DSB_CYCLES_OK]",
2713f5f0df7SIan Rogers        "CounterMask": "4",
2723f5f0df7SIan Rogers        "EventCode": "0x79",
2733f5f0df7SIan Rogers        "EventName": "IDQ.ALL_DSB_CYCLES_4_UOPS",
2743f5f0df7SIan Rogers        "PublicDescription": "Counts the number of cycles 4 uops were delivered to Instruction Decode Queue (IDQ) from the Decode Stream Buffer (DSB) path. Count includes uops that may 'bypass' the IDQ. [This event is alias to IDQ.DSB_CYCLES_OK]",
2753f5f0df7SIan Rogers        "SampleAfterValue": "2000003",
2763f5f0df7SIan Rogers        "UMask": "0x18"
2773f5f0df7SIan Rogers    },
2783f5f0df7SIan Rogers    {
2793f5f0df7SIan Rogers        "BriefDescription": "Cycles Decode Stream Buffer (DSB) is delivering any Uop [This event is alias to IDQ.DSB_CYCLES_ANY]",
2803f5f0df7SIan Rogers        "CounterMask": "1",
2813f5f0df7SIan Rogers        "EventCode": "0x79",
2823f5f0df7SIan Rogers        "EventName": "IDQ.ALL_DSB_CYCLES_ANY_UOPS",
2833f5f0df7SIan Rogers        "PublicDescription": "Counts the number of cycles uops were delivered to Instruction Decode Queue (IDQ) from the Decode Stream Buffer (DSB) path. Count includes uops that may 'bypass' the IDQ. [This event is alias to IDQ.DSB_CYCLES_ANY]",
2843f5f0df7SIan Rogers        "SampleAfterValue": "2000003",
2853f5f0df7SIan Rogers        "UMask": "0x18"
2863f5f0df7SIan Rogers    },
2873f5f0df7SIan Rogers    {
2883f5f0df7SIan Rogers        "BriefDescription": "Cycles MITE is delivering 4 Uops",
2893f5f0df7SIan Rogers        "CounterMask": "4",
2903f5f0df7SIan Rogers        "EventCode": "0x79",
2913f5f0df7SIan Rogers        "EventName": "IDQ.ALL_MITE_CYCLES_4_UOPS",
2923f5f0df7SIan Rogers        "PublicDescription": "Counts the number of cycles 4 uops were delivered to the Instruction Decode Queue (IDQ) from the MITE (legacy decode pipeline) path. Counting includes uops that may 'bypass' the IDQ. During these cycles uops are not being delivered from the Decode Stream Buffer (DSB).",
2933f5f0df7SIan Rogers        "SampleAfterValue": "2000003",
2943f5f0df7SIan Rogers        "UMask": "0x24"
2953f5f0df7SIan Rogers    },
2963f5f0df7SIan Rogers    {
2973f5f0df7SIan Rogers        "BriefDescription": "Cycles MITE is delivering any Uop",
2983f5f0df7SIan Rogers        "CounterMask": "1",
2993f5f0df7SIan Rogers        "EventCode": "0x79",
3003f5f0df7SIan Rogers        "EventName": "IDQ.ALL_MITE_CYCLES_ANY_UOPS",
3013f5f0df7SIan Rogers        "PublicDescription": "Counts the number of cycles uops were delivered to the Instruction Decode Queue (IDQ) from the MITE (legacy decode pipeline) path. Counting includes uops that may 'bypass' the IDQ. During these cycles uops are not being delivered from the Decode Stream Buffer (DSB).",
3023f5f0df7SIan Rogers        "SampleAfterValue": "2000003",
3033f5f0df7SIan Rogers        "UMask": "0x24"
3043f5f0df7SIan Rogers    },
3053f5f0df7SIan Rogers    {
3063f5f0df7SIan Rogers        "BriefDescription": "Cycles when uops are being delivered to Instruction Decode Queue (IDQ) from Decode Stream Buffer (DSB) path",
3073f5f0df7SIan Rogers        "CounterMask": "1",
3083f5f0df7SIan Rogers        "EventCode": "0x79",
3093f5f0df7SIan Rogers        "EventName": "IDQ.DSB_CYCLES",
3103f5f0df7SIan Rogers        "PublicDescription": "Counts cycles during which uops are being delivered to Instruction Decode Queue (IDQ) from the Decode Stream Buffer (DSB) path. Counting includes uops that may 'bypass' the IDQ.",
3113f5f0df7SIan Rogers        "SampleAfterValue": "2000003",
3123f5f0df7SIan Rogers        "UMask": "0x8"
3133f5f0df7SIan Rogers    },
3143f5f0df7SIan Rogers    {
3153f5f0df7SIan Rogers        "BriefDescription": "Cycles Decode Stream Buffer (DSB) is delivering any Uop [This event is alias to IDQ.ALL_DSB_CYCLES_ANY_UOPS]",
3163f5f0df7SIan Rogers        "CounterMask": "1",
3173f5f0df7SIan Rogers        "EventCode": "0x79",
3183f5f0df7SIan Rogers        "EventName": "IDQ.DSB_CYCLES_ANY",
3193f5f0df7SIan Rogers        "PublicDescription": "Counts the number of cycles uops were delivered to Instruction Decode Queue (IDQ) from the Decode Stream Buffer (DSB) path. Count includes uops that may 'bypass' the IDQ. [This event is alias to IDQ.ALL_DSB_CYCLES_ANY_UOPS]",
3203f5f0df7SIan Rogers        "SampleAfterValue": "2000003",
3213f5f0df7SIan Rogers        "UMask": "0x18"
3223f5f0df7SIan Rogers    },
3233f5f0df7SIan Rogers    {
3243f5f0df7SIan Rogers        "BriefDescription": "Cycles Decode Stream Buffer (DSB) is delivering 4 Uops [This event is alias to IDQ.ALL_DSB_CYCLES_4_UOPS]",
325*9d9675bbSIan Rogers        "CounterMask": "4",
3263f5f0df7SIan Rogers        "EventCode": "0x79",
3273f5f0df7SIan Rogers        "EventName": "IDQ.DSB_CYCLES_OK",
3283f5f0df7SIan Rogers        "PublicDescription": "Counts the number of cycles 4 uops were delivered to Instruction Decode Queue (IDQ) from the Decode Stream Buffer (DSB) path. Count includes uops that may 'bypass' the IDQ. [This event is alias to IDQ.ALL_DSB_CYCLES_4_UOPS]",
3293f5f0df7SIan Rogers        "SampleAfterValue": "2000003",
3303f5f0df7SIan Rogers        "UMask": "0x18"
3313f5f0df7SIan Rogers    },
3323f5f0df7SIan Rogers    {
3333f5f0df7SIan Rogers        "BriefDescription": "Uops delivered to Instruction Decode Queue (IDQ) from the Decode Stream Buffer (DSB) path",
334*9d9675bbSIan Rogers        "EventCode": "0x79",
3353f5f0df7SIan Rogers        "EventName": "IDQ.DSB_UOPS",
3363f5f0df7SIan Rogers        "PublicDescription": "Counts the number of uops delivered to Instruction Decode Queue (IDQ) from the Decode Stream Buffer (DSB) path. Counting includes uops that may 'bypass' the IDQ.",
3373f5f0df7SIan Rogers        "SampleAfterValue": "2000003",
3383f5f0df7SIan Rogers        "UMask": "0x8"
3393f5f0df7SIan Rogers    },
3403f5f0df7SIan Rogers    {
3413f5f0df7SIan Rogers        "BriefDescription": "Cycles when uops are being delivered to Instruction Decode Queue (IDQ) from MITE path",
3423f5f0df7SIan Rogers        "CounterMask": "1",
343*9d9675bbSIan Rogers        "EventCode": "0x79",
3443f5f0df7SIan Rogers        "EventName": "IDQ.MITE_CYCLES",
3453f5f0df7SIan Rogers        "PublicDescription": "Counts cycles during which uops are being delivered to Instruction Decode Queue (IDQ) from the MITE path. Counting includes uops that may 'bypass' the IDQ.",
3463f5f0df7SIan Rogers        "SampleAfterValue": "2000003",
3473f5f0df7SIan Rogers        "UMask": "0x4"
3483f5f0df7SIan Rogers    },
3493f5f0df7SIan Rogers    {
3503f5f0df7SIan Rogers        "BriefDescription": "Uops delivered to Instruction Decode Queue (IDQ) from MITE path",
3513f5f0df7SIan Rogers        "EventCode": "0x79",
3523f5f0df7SIan Rogers        "EventName": "IDQ.MITE_UOPS",
3533f5f0df7SIan Rogers        "PublicDescription": "Counts the number of uops delivered to Instruction Decode Queue (IDQ) from the MITE path. Counting includes uops that may 'bypass' the IDQ. This also means that uops are not being delivered from the Decode Stream Buffer (DSB).",
3543f5f0df7SIan Rogers        "SampleAfterValue": "2000003",
3553f5f0df7SIan Rogers        "UMask": "0x4"
3563f5f0df7SIan Rogers    },
3573f5f0df7SIan Rogers    {
3583f5f0df7SIan Rogers        "BriefDescription": "Cycles when uops are being delivered to Instruction Decode Queue (IDQ) while Microcode Sequencer (MS) is busy",
3593f5f0df7SIan Rogers        "CounterMask": "1",
3603f5f0df7SIan Rogers        "EventCode": "0x79",
361*9d9675bbSIan Rogers        "EventName": "IDQ.MS_CYCLES",
3623f5f0df7SIan Rogers        "PublicDescription": "Counts cycles during which uops are being delivered to Instruction Decode Queue (IDQ) while the Microcode Sequencer (MS) is busy. Counting includes uops that may 'bypass' the IDQ. Uops maybe initiated by Decode Stream Buffer (DSB) or MITE.",
3633f5f0df7SIan Rogers        "SampleAfterValue": "2000003",
3643f5f0df7SIan Rogers        "UMask": "0x30"
3653f5f0df7SIan Rogers    },
3663f5f0df7SIan Rogers    {
3673f5f0df7SIan Rogers        "BriefDescription": "Cycles when uops initiated by Decode Stream Buffer (DSB) are being delivered to Instruction Decode Queue (IDQ) while Microcode Sequencer (MS) is busy",
3683f5f0df7SIan Rogers        "CounterMask": "1",
3693f5f0df7SIan Rogers        "EventCode": "0x79",
3703f5f0df7SIan Rogers        "EventName": "IDQ.MS_DSB_CYCLES",
3713f5f0df7SIan Rogers        "PublicDescription": "Counts cycles during which uops initiated by Decode Stream Buffer (DSB) are being delivered to Instruction Decode Queue (IDQ) while the Microcode Sequencer (MS) is busy. Counting includes uops that may 'bypass' the IDQ.",
3723f5f0df7SIan Rogers        "SampleAfterValue": "2000003",
3733f5f0df7SIan Rogers        "UMask": "0x10"
3743f5f0df7SIan Rogers    },
3753f5f0df7SIan Rogers    {
3763f5f0df7SIan Rogers        "BriefDescription": "Uops initiated by MITE and delivered to Instruction Decode Queue (IDQ) while Microcode Sequencer (MS) is busy",
3773f5f0df7SIan Rogers        "EventCode": "0x79",
3783f5f0df7SIan Rogers        "EventName": "IDQ.MS_MITE_UOPS",
3793f5f0df7SIan Rogers        "PublicDescription": "Counts the number of uops initiated by MITE and delivered to Instruction Decode Queue (IDQ) while the Microcode Sequencer (MS) is busy. Counting includes uops that may 'bypass' the IDQ.",
3803f5f0df7SIan Rogers        "SampleAfterValue": "2000003",
3813f5f0df7SIan Rogers        "UMask": "0x20"
3823f5f0df7SIan Rogers    },
3833f5f0df7SIan Rogers    {
3843f5f0df7SIan Rogers        "BriefDescription": "Number of switches from DSB (Decode Stream Buffer) or MITE (legacy decode pipeline) to the Microcode Sequencer",
3853f5f0df7SIan Rogers        "CounterMask": "1",
3863f5f0df7SIan Rogers        "EdgeDetect": "1",
3873f5f0df7SIan Rogers        "EventCode": "0x79",
3883f5f0df7SIan Rogers        "EventName": "IDQ.MS_SWITCHES",
3893f5f0df7SIan Rogers        "PublicDescription": "Number of switches from DSB (Decode Stream Buffer) or MITE (legacy decode pipeline) to the Microcode Sequencer.",
3903f5f0df7SIan Rogers        "SampleAfterValue": "2000003",
3913f5f0df7SIan Rogers        "UMask": "0x30"
3923f5f0df7SIan Rogers    },
3933f5f0df7SIan Rogers    {
3943f5f0df7SIan Rogers        "BriefDescription": "Uops delivered to Instruction Decode Queue (IDQ) while Microcode Sequencer (MS) is busy",
3953f5f0df7SIan Rogers        "EventCode": "0x79",
3963f5f0df7SIan Rogers        "EventName": "IDQ.MS_UOPS",
3973f5f0df7SIan Rogers        "PublicDescription": "Counts the total number of uops delivered by the Microcode Sequencer (MS). Any instruction over 4 uops will be delivered by the MS. Some instructions such as transcendentals may additionally generate uops from the MS.",
3983f5f0df7SIan Rogers        "SampleAfterValue": "2000003",
3993f5f0df7SIan Rogers        "UMask": "0x30"
4003f5f0df7SIan Rogers    },
4013f5f0df7SIan Rogers    {
4023f5f0df7SIan Rogers        "BriefDescription": "Uops not delivered to Resource Allocation Table (RAT) per thread when backend of the machine is not stalled",
4033f5f0df7SIan Rogers        "EventCode": "0x9C",
4043f5f0df7SIan Rogers        "EventName": "IDQ_UOPS_NOT_DELIVERED.CORE",
4053f5f0df7SIan Rogers        "PublicDescription": "Counts the number of uops not delivered to Resource Allocation Table (RAT) per thread adding 4  x when Resource Allocation Table (RAT) is not stalled and Instruction Decode Queue (IDQ) delivers x uops to Resource Allocation Table (RAT) (where x belongs to {0,1,2,3}). Counting does not cover cases when: a. IDQ-Resource Allocation Table (RAT) pipe serves the other thread. b. Resource Allocation Table (RAT) is stalled for the thread (including uop drops and clear BE conditions).  c. Instruction Decode Queue (IDQ) delivers four uops.",
4063f5f0df7SIan Rogers        "SampleAfterValue": "2000003",
4073f5f0df7SIan Rogers        "UMask": "0x1"
4083f5f0df7SIan Rogers    },
4093f5f0df7SIan Rogers    {
4103d05181aSJin Yao        "BriefDescription": "Cycles per thread when 4 or more uops are not delivered to Resource Allocation Table (RAT) when backend of the machine is not stalled",
4113d05181aSJin Yao        "CounterMask": "4",
4123d05181aSJin Yao        "EventCode": "0x9C",
4133d05181aSJin Yao        "EventName": "IDQ_UOPS_NOT_DELIVERED.CYCLES_0_UOPS_DELIV.CORE",
4143d05181aSJin Yao        "PublicDescription": "Counts, on the per-thread basis, cycles when no uops are delivered to Resource Allocation Table (RAT). IDQ_Uops_Not_Delivered.core =4.",
4153d05181aSJin Yao        "SampleAfterValue": "2000003",
4163d05181aSJin Yao        "UMask": "0x1"
4173d05181aSJin Yao    },
4183d05181aSJin Yao    {
4193d05181aSJin Yao        "BriefDescription": "Counts cycles FE delivered 4 uops or Resource Allocation Table (RAT) was stalling FE.",
42047cbd67eSAndi Kleen        "CounterMask": "1",
42147cbd67eSAndi Kleen        "EventCode": "0x9C",
422        "EventName": "IDQ_UOPS_NOT_DELIVERED.CYCLES_FE_WAS_OK",
423        "Invert": "1",
424        "SampleAfterValue": "2000003",
425        "UMask": "0x1"
426    },
427    {
428        "BriefDescription": "Cycles per thread when 3 or more uops are not delivered to Resource Allocation Table (RAT) when backend of the machine is not stalled",
429        "CounterMask": "3",
430        "EventCode": "0x9C",
431        "EventName": "IDQ_UOPS_NOT_DELIVERED.CYCLES_LE_1_UOP_DELIV.CORE",
432        "PublicDescription": "Counts, on the per-thread basis, cycles when less than 1 uop is delivered to Resource Allocation Table (RAT). IDQ_Uops_Not_Delivered.core >= 3.",
433        "SampleAfterValue": "2000003",
434        "UMask": "0x1"
435    },
436    {
437        "BriefDescription": "Cycles with less than 2 uops delivered by the front end.",
438        "CounterMask": "2",
439        "EventCode": "0x9C",
440        "EventName": "IDQ_UOPS_NOT_DELIVERED.CYCLES_LE_2_UOP_DELIV.CORE",
441        "PublicDescription": "Cycles with less than 2 uops delivered by the front-end.",
442        "SampleAfterValue": "2000003",
443        "UMask": "0x1"
444    },
445    {
446        "BriefDescription": "Cycles with less than 3 uops delivered by the front end.",
447        "CounterMask": "1",
448        "EventCode": "0x9C",
449        "EventName": "IDQ_UOPS_NOT_DELIVERED.CYCLES_LE_3_UOP_DELIV.CORE",
450        "PublicDescription": "Cycles with less than 3 uops delivered by the front-end.",
451        "SampleAfterValue": "2000003",
452        "UMask": "0x1"
453    }
454]
455