1902ea4eeSAndi Kleen[
2902ea4eeSAndi Kleen    {
32782403cSIan 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.",
42782403cSIan Rogers        "EventCode": "0xE6",
52782403cSIan Rogers        "EventName": "BACLEARS.ANY",
62782403cSIan Rogers        "SampleAfterValue": "100003",
72782403cSIan Rogers        "UMask": "0x1f"
8902ea4eeSAndi Kleen    },
9902ea4eeSAndi Kleen    {
102782403cSIan Rogers        "BriefDescription": "Decode Stream Buffer (DSB)-to-MITE switches.",
11902ea4eeSAndi Kleen        "EventCode": "0xAB",
12902ea4eeSAndi Kleen        "EventName": "DSB2MITE_SWITCHES.COUNT",
13902ea4eeSAndi Kleen        "SampleAfterValue": "2000003",
142782403cSIan Rogers        "UMask": "0x1"
15902ea4eeSAndi Kleen    },
16902ea4eeSAndi Kleen    {
17902ea4eeSAndi Kleen        "BriefDescription": "Decode Stream Buffer (DSB)-to-MITE switch true penalty cycles.",
182782403cSIan Rogers        "EventCode": "0xAB",
192782403cSIan Rogers        "EventName": "DSB2MITE_SWITCHES.PENALTY_CYCLES",
202782403cSIan Rogers        "PublicDescription": "This event counts the cycles attributed to a switch from the Decoded Stream Buffer (DSB), which holds decoded instructions, to the legacy decode pipeline.  It excludes cycles when the back-end cannot  accept new micro-ops.  The penalty for these switches is potentially several cycles of instruction starvation, where no micro-ops are delivered to the back-end.",
212782403cSIan Rogers        "SampleAfterValue": "2000003",
222782403cSIan Rogers        "UMask": "0x2"
23902ea4eeSAndi Kleen    },
24902ea4eeSAndi Kleen    {
252782403cSIan Rogers        "BriefDescription": "Cases of cancelling valid Decode Stream Buffer (DSB) fill not because of exceeding way limit.",
26902ea4eeSAndi Kleen        "EventCode": "0xAC",
27902ea4eeSAndi Kleen        "EventName": "DSB_FILL.ALL_CANCEL",
28902ea4eeSAndi Kleen        "SampleAfterValue": "2000003",
292782403cSIan Rogers        "UMask": "0xa"
30902ea4eeSAndi Kleen    },
31902ea4eeSAndi Kleen    {
322782403cSIan Rogers        "BriefDescription": "Cycles when Decode Stream Buffer (DSB) fill encounter more than 3 Decode Stream Buffer (DSB) lines.",
332782403cSIan Rogers        "EventCode": "0xAC",
342782403cSIan Rogers        "EventName": "DSB_FILL.EXCEED_DSB_LINES",
35902ea4eeSAndi Kleen        "SampleAfterValue": "2000003",
362782403cSIan Rogers        "UMask": "0x8"
37902ea4eeSAndi Kleen    },
38902ea4eeSAndi Kleen    {
392782403cSIan Rogers        "BriefDescription": "Cases of cancelling valid DSB fill not because of exceeding way limit.",
402782403cSIan Rogers        "EventCode": "0xAC",
412782403cSIan Rogers        "EventName": "DSB_FILL.OTHER_CANCEL",
422782403cSIan Rogers        "SampleAfterValue": "2000003",
432782403cSIan Rogers        "UMask": "0x2"
442782403cSIan Rogers    },
452782403cSIan Rogers    {
462782403cSIan Rogers        "BriefDescription": "Number of Instruction Cache, Streaming Buffer and Victim Cache Reads. both cacheable and noncacheable, including UC fetches.",
472782403cSIan Rogers        "EventCode": "0x80",
482782403cSIan Rogers        "EventName": "ICACHE.HIT",
492782403cSIan Rogers        "SampleAfterValue": "2000003",
502782403cSIan Rogers        "UMask": "0x1"
512782403cSIan Rogers    },
522782403cSIan Rogers    {
532782403cSIan Rogers        "BriefDescription": "Instruction cache, streaming buffer and victim cache misses.",
542782403cSIan Rogers        "EventCode": "0x80",
552782403cSIan Rogers        "EventName": "ICACHE.MISSES",
562782403cSIan Rogers        "PublicDescription": "This event counts the number of instruction cache, streaming buffer and victim cache misses. Counting includes unchacheable accesses.",
572782403cSIan Rogers        "SampleAfterValue": "200003",
582782403cSIan Rogers        "UMask": "0x2"
592782403cSIan Rogers    },
602782403cSIan Rogers    {
612782403cSIan Rogers        "BriefDescription": "Cycles Decode Stream Buffer (DSB) is delivering 4 Uops.",
622782403cSIan Rogers        "CounterMask": "4",
632782403cSIan Rogers        "EventCode": "0x79",
642782403cSIan Rogers        "EventName": "IDQ.ALL_DSB_CYCLES_4_UOPS",
652782403cSIan Rogers        "SampleAfterValue": "2000003",
662782403cSIan Rogers        "UMask": "0x18"
672782403cSIan Rogers    },
682782403cSIan Rogers    {
692782403cSIan Rogers        "BriefDescription": "Cycles Decode Stream Buffer (DSB) is delivering any Uop.",
702782403cSIan Rogers        "CounterMask": "1",
712782403cSIan Rogers        "EventCode": "0x79",
722782403cSIan Rogers        "EventName": "IDQ.ALL_DSB_CYCLES_ANY_UOPS",
732782403cSIan Rogers        "SampleAfterValue": "2000003",
742782403cSIan Rogers        "UMask": "0x18"
752782403cSIan Rogers    },
762782403cSIan Rogers    {
772782403cSIan Rogers        "BriefDescription": "Cycles MITE is delivering 4 Uops.",
782782403cSIan Rogers        "CounterMask": "4",
792782403cSIan Rogers        "EventCode": "0x79",
802782403cSIan Rogers        "EventName": "IDQ.ALL_MITE_CYCLES_4_UOPS",
812782403cSIan Rogers        "SampleAfterValue": "2000003",
822782403cSIan Rogers        "UMask": "0x24"
832782403cSIan Rogers    },
842782403cSIan Rogers    {
852782403cSIan Rogers        "BriefDescription": "Cycles MITE is delivering any Uop.",
862782403cSIan Rogers        "CounterMask": "1",
872782403cSIan Rogers        "EventCode": "0x79",
882782403cSIan Rogers        "EventName": "IDQ.ALL_MITE_CYCLES_ANY_UOPS",
892782403cSIan Rogers        "SampleAfterValue": "2000003",
902782403cSIan Rogers        "UMask": "0x24"
912782403cSIan Rogers    },
922782403cSIan Rogers    {
932782403cSIan Rogers        "BriefDescription": "Cycles when uops are being delivered to Instruction Decode Queue (IDQ) from Decode Stream Buffer (DSB) path.",
942782403cSIan Rogers        "CounterMask": "1",
952782403cSIan Rogers        "EventCode": "0x79",
962782403cSIan Rogers        "EventName": "IDQ.DSB_CYCLES",
972782403cSIan Rogers        "SampleAfterValue": "2000003",
982782403cSIan Rogers        "UMask": "0x8"
992782403cSIan Rogers    },
1002782403cSIan Rogers    {
1012782403cSIan Rogers        "BriefDescription": "Uops delivered to Instruction Decode Queue (IDQ) from the Decode Stream Buffer (DSB) path.",
1022782403cSIan Rogers        "EventCode": "0x79",
1032782403cSIan Rogers        "EventName": "IDQ.DSB_UOPS",
1042782403cSIan Rogers        "SampleAfterValue": "2000003",
1052782403cSIan Rogers        "UMask": "0x8"
1062782403cSIan Rogers    },
1072782403cSIan Rogers    {
1082782403cSIan Rogers        "BriefDescription": "Instruction Decode Queue (IDQ) empty cycles.",
1092782403cSIan Rogers        "EventCode": "0x79",
1102782403cSIan Rogers        "EventName": "IDQ.EMPTY",
1112782403cSIan Rogers        "SampleAfterValue": "2000003",
1122782403cSIan Rogers        "UMask": "0x2"
1132782403cSIan Rogers    },
1142782403cSIan Rogers    {
1152782403cSIan Rogers        "BriefDescription": "Uops delivered to Instruction Decode Queue (IDQ) from MITE path.",
1162782403cSIan Rogers        "EventCode": "0x79",
117902ea4eeSAndi Kleen        "EventName": "IDQ.MITE_ALL_UOPS",
118902ea4eeSAndi Kleen        "SampleAfterValue": "2000003",
1192782403cSIan Rogers        "UMask": "0x3c"
120902ea4eeSAndi Kleen    },
121902ea4eeSAndi Kleen    {
1222782403cSIan Rogers        "BriefDescription": "Cycles when uops are being delivered to Instruction Decode Queue (IDQ) from MITE path.",
1232782403cSIan Rogers        "CounterMask": "1",
1242782403cSIan Rogers        "EventCode": "0x79",
1252782403cSIan Rogers        "EventName": "IDQ.MITE_CYCLES",
1262782403cSIan Rogers        "SampleAfterValue": "2000003",
1272782403cSIan Rogers        "UMask": "0x4"
1282782403cSIan Rogers    },
1292782403cSIan Rogers    {
1302782403cSIan Rogers        "BriefDescription": "Uops delivered to Instruction Decode Queue (IDQ) from MITE path.",
1312782403cSIan Rogers        "EventCode": "0x79",
1322782403cSIan Rogers        "EventName": "IDQ.MITE_UOPS",
1332782403cSIan Rogers        "SampleAfterValue": "2000003",
1342782403cSIan Rogers        "UMask": "0x4"
1352782403cSIan Rogers    },
1362782403cSIan Rogers    {
137*5c3f73c1SIan Rogers        "BriefDescription": "Cycles when uops are being delivered to Instruction Decode Queue (IDQ) while Microcode Sequencer (MS) is busy.",
1382782403cSIan Rogers        "CounterMask": "1",
1392782403cSIan Rogers        "EventCode": "0x79",
1402782403cSIan Rogers        "EventName": "IDQ.MS_CYCLES",
1412782403cSIan Rogers        "PublicDescription": "This event counts cycles during which the microcode sequencer assisted the front-end in delivering uops.  Microcode assists are used for complex instructions or scenarios that can't be handled by the standard decoder.  Using other instructions, if possible, will usually improve performance.  See the Intel? 64 and IA-32 Architectures Optimization Reference Manual for more information.",
1422782403cSIan Rogers        "SampleAfterValue": "2000003",
1432782403cSIan Rogers        "UMask": "0x30"
1442782403cSIan Rogers    },
1452782403cSIan Rogers    {
146*5c3f73c1SIan 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.",
1472782403cSIan Rogers        "CounterMask": "1",
1482782403cSIan Rogers        "EventCode": "0x79",
1492782403cSIan Rogers        "EventName": "IDQ.MS_DSB_CYCLES",
1502782403cSIan Rogers        "SampleAfterValue": "2000003",
1512782403cSIan Rogers        "UMask": "0x10"
1522782403cSIan Rogers    },
1532782403cSIan Rogers    {
154*5c3f73c1SIan Rogers        "BriefDescription": "Deliveries to Instruction Decode Queue (IDQ) initiated by Decode Stream Buffer (DSB) while Microcode Sequencer (MS) is busy.",
1552782403cSIan Rogers        "CounterMask": "1",
156902ea4eeSAndi Kleen        "EdgeDetect": "1",
1572782403cSIan Rogers        "EventCode": "0x79",
1582782403cSIan Rogers        "EventName": "IDQ.MS_DSB_OCCUR",
1592782403cSIan Rogers        "SampleAfterValue": "2000003",
1602782403cSIan Rogers        "UMask": "0x10"
1612782403cSIan Rogers    },
1622782403cSIan Rogers    {
163*5c3f73c1SIan Rogers        "BriefDescription": "Uops initiated by Decode Stream Buffer (DSB) that are being delivered to Instruction Decode Queue (IDQ) while Microcode Sequencer (MS) is busy.",
1642782403cSIan Rogers        "EventCode": "0x79",
1652782403cSIan Rogers        "EventName": "IDQ.MS_DSB_UOPS",
1662782403cSIan Rogers        "SampleAfterValue": "2000003",
1672782403cSIan Rogers        "UMask": "0x10"
1682782403cSIan Rogers    },
1692782403cSIan Rogers    {
170*5c3f73c1SIan Rogers        "BriefDescription": "Uops initiated by MITE and delivered to Instruction Decode Queue (IDQ) while Microcode Sequencer (MS) is busy.",
1712782403cSIan Rogers        "EventCode": "0x79",
1722782403cSIan Rogers        "EventName": "IDQ.MS_MITE_UOPS",
1732782403cSIan Rogers        "SampleAfterValue": "2000003",
1742782403cSIan Rogers        "UMask": "0x20"
1752782403cSIan Rogers    },
1762782403cSIan Rogers    {
1772782403cSIan Rogers        "BriefDescription": "Number of switches from DSB (Decode Stream Buffer) or MITE (legacy decode pipeline) to the Microcode Sequencer.",
1782782403cSIan Rogers        "CounterMask": "1",
1792782403cSIan Rogers        "EdgeDetect": "1",
1802782403cSIan Rogers        "EventCode": "0x79",
181902ea4eeSAndi Kleen        "EventName": "IDQ.MS_SWITCHES",
182902ea4eeSAndi Kleen        "SampleAfterValue": "2000003",
1832782403cSIan Rogers        "UMask": "0x30"
1842782403cSIan Rogers    },
1852782403cSIan Rogers    {
186*5c3f73c1SIan Rogers        "BriefDescription": "Uops delivered to Instruction Decode Queue (IDQ) while Microcode Sequencer (MS) is busy.",
1872782403cSIan Rogers        "EventCode": "0x79",
1882782403cSIan Rogers        "EventName": "IDQ.MS_UOPS",
1892782403cSIan Rogers        "SampleAfterValue": "2000003",
1902782403cSIan Rogers        "UMask": "0x30"
1912782403cSIan Rogers    },
1922782403cSIan Rogers    {
1932782403cSIan Rogers        "BriefDescription": "Uops not delivered to Resource Allocation Table (RAT) per thread when backend of the machine is not stalled .",
1942782403cSIan Rogers        "EventCode": "0x9C",
1952782403cSIan Rogers        "EventName": "IDQ_UOPS_NOT_DELIVERED.CORE",
1962782403cSIan Rogers        "PublicDescription": "This event counts the number of uops not delivered to the back-end per cycle, per thread, when the back-end was not stalled.  In the ideal case 4 uops can be delivered each cycle.  The event counts the undelivered uops - so if 3 were delivered in one cycle, the counter would be incremented by 1 for that cycle (4 - 3). If the back-end is stalled, the count for this event is not incremented even when uops were not delivered, because the back-end would not have been able to accept them.  This event is used in determining the front-end bound category of the top-down pipeline slots characterization.",
1972782403cSIan Rogers        "SampleAfterValue": "2000003",
1982782403cSIan Rogers        "UMask": "0x1"
1992782403cSIan Rogers    },
2002782403cSIan Rogers    {
2012782403cSIan Rogers        "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.",
2022782403cSIan Rogers        "CounterMask": "4",
2032782403cSIan Rogers        "EventCode": "0x9C",
2042782403cSIan Rogers        "EventName": "IDQ_UOPS_NOT_DELIVERED.CYCLES_0_UOPS_DELIV.CORE",
2052782403cSIan Rogers        "SampleAfterValue": "2000003",
2062782403cSIan Rogers        "UMask": "0x1"
2072782403cSIan Rogers    },
2082782403cSIan Rogers    {
2092782403cSIan Rogers        "BriefDescription": "Counts cycles FE delivered 4 uops or Resource Allocation Table (RAT) was stalling FE.",
210902ea4eeSAndi Kleen        "CounterMask": "1",
2112782403cSIan Rogers        "EventCode": "0x9C",
2122782403cSIan Rogers        "EventName": "IDQ_UOPS_NOT_DELIVERED.CYCLES_FE_WAS_OK",
2132782403cSIan Rogers        "Invert": "1",
2142782403cSIan Rogers        "SampleAfterValue": "2000003",
2152782403cSIan Rogers        "UMask": "0x1"
2162782403cSIan Rogers    },
2172782403cSIan Rogers    {
2182782403cSIan Rogers        "BriefDescription": "Cycles when 1 or more uops were delivered to the by the front end.",
2192782403cSIan Rogers        "CounterMask": "4",
2202782403cSIan Rogers        "EventCode": "0x9C",
2212782403cSIan Rogers        "EventName": "IDQ_UOPS_NOT_DELIVERED.CYCLES_GE_1_UOP_DELIV.CORE",
2222782403cSIan Rogers        "Invert": "1",
2232782403cSIan Rogers        "SampleAfterValue": "2000003",
2242782403cSIan Rogers        "UMask": "0x1"
2252782403cSIan Rogers    },
2262782403cSIan Rogers    {
2272782403cSIan Rogers        "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.",
2282782403cSIan Rogers        "CounterMask": "3",
2292782403cSIan Rogers        "EventCode": "0x9C",
2302782403cSIan Rogers        "EventName": "IDQ_UOPS_NOT_DELIVERED.CYCLES_LE_1_UOP_DELIV.CORE",
2312782403cSIan Rogers        "SampleAfterValue": "2000003",
2322782403cSIan Rogers        "UMask": "0x1"
2332782403cSIan Rogers    },
2342782403cSIan Rogers    {
2352782403cSIan Rogers        "BriefDescription": "Cycles with less than 2 uops delivered by the front end.",
2362782403cSIan Rogers        "CounterMask": "2",
2372782403cSIan Rogers        "EventCode": "0x9C",
2382782403cSIan Rogers        "EventName": "IDQ_UOPS_NOT_DELIVERED.CYCLES_LE_2_UOP_DELIV.CORE",
2392782403cSIan Rogers        "SampleAfterValue": "2000003",
2402782403cSIan Rogers        "UMask": "0x1"
2412782403cSIan Rogers    },
2422782403cSIan Rogers    {
2432782403cSIan Rogers        "BriefDescription": "Cycles with less than 3 uops delivered by the front end.",
2442782403cSIan Rogers        "CounterMask": "1",
2452782403cSIan Rogers        "EventCode": "0x9C",
2462782403cSIan Rogers        "EventName": "IDQ_UOPS_NOT_DELIVERED.CYCLES_LE_3_UOP_DELIV.CORE",
2472782403cSIan Rogers        "SampleAfterValue": "2000003",
2482782403cSIan Rogers        "UMask": "0x1"
249902ea4eeSAndi Kleen    }
250902ea4eeSAndi Kleen]
251