119c0389bSAndi Kleen[
219c0389bSAndi Kleen    {
356f57cffSIan 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.",
456f57cffSIan Rogers        "EventCode": "0xe6",
556f57cffSIan Rogers        "EventName": "BACLEARS.ANY",
656f57cffSIan Rogers        "SampleAfterValue": "100003",
756f57cffSIan Rogers        "UMask": "0x1f"
819c0389bSAndi Kleen    },
919c0389bSAndi Kleen    {
1019c0389bSAndi Kleen        "BriefDescription": "Decode Stream Buffer (DSB)-to-MITE switch true penalty cycles.",
1156f57cffSIan Rogers        "EventCode": "0xAB",
1219c0389bSAndi Kleen        "EventName": "DSB2MITE_SWITCHES.PENALTY_CYCLES",
1397d00f2dSAndi Kleen        "PublicDescription": "This event 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. \nMM 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.\nPenalty: 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.",
1419c0389bSAndi Kleen        "SampleAfterValue": "2000003",
1556f57cffSIan Rogers        "UMask": "0x2"
1656f57cffSIan Rogers    },
1756f57cffSIan Rogers    {
1856f57cffSIan Rogers        "BriefDescription": "Number of Instruction Cache, Streaming Buffer and Victim Cache Reads. both cacheable and noncacheable, including UC fetches",
1956f57cffSIan Rogers        "EventCode": "0x80",
2056f57cffSIan Rogers        "EventName": "ICACHE.HIT",
2156f57cffSIan Rogers        "PublicDescription": "This event counts the number of both cacheable and noncacheable Instruction Cache, Streaming Buffer and Victim Cache Reads including UC fetches.",
2256f57cffSIan Rogers        "SampleAfterValue": "2000003",
2356f57cffSIan Rogers        "UMask": "0x1"
2456f57cffSIan Rogers    },
2556f57cffSIan Rogers    {
2656f57cffSIan Rogers        "BriefDescription": "Cycles where a code fetch is stalled due to L1 instruction-cache miss.",
2756f57cffSIan Rogers        "EventCode": "0x80",
2856f57cffSIan Rogers        "EventName": "ICACHE.IFDATA_STALL",
2956f57cffSIan Rogers        "PublicDescription": "This event counts cycles during which the demand fetch waits for data (wfdM104H) from L2 or iSB (opportunistic hit).",
3056f57cffSIan Rogers        "SampleAfterValue": "2000003",
3156f57cffSIan Rogers        "UMask": "0x4"
3256f57cffSIan Rogers    },
3356f57cffSIan Rogers    {
3456f57cffSIan Rogers        "BriefDescription": "Number of Instruction Cache, Streaming Buffer and Victim Cache Misses. Includes Uncacheable accesses.",
3556f57cffSIan Rogers        "EventCode": "0x80",
3656f57cffSIan Rogers        "EventName": "ICACHE.MISSES",
3756f57cffSIan Rogers        "PublicDescription": "This event counts the number of instruction cache, streaming buffer and victim cache misses. Counting includes UC accesses.",
3856f57cffSIan Rogers        "SampleAfterValue": "200003",
3956f57cffSIan Rogers        "UMask": "0x2"
4056f57cffSIan Rogers    },
4156f57cffSIan Rogers    {
4256f57cffSIan Rogers        "BriefDescription": "Cycles Decode Stream Buffer (DSB) is delivering 4 Uops",
4356f57cffSIan Rogers        "CounterMask": "4",
4456f57cffSIan Rogers        "EventCode": "0x79",
4556f57cffSIan Rogers        "EventName": "IDQ.ALL_DSB_CYCLES_4_UOPS",
4656f57cffSIan Rogers        "PublicDescription": "This event counts the number of cycles 4  uops were  delivered to Instruction Decode Queue (IDQ) from the Decode Stream Buffer (DSB) path. Counting includes uops that may bypass the IDQ.",
4756f57cffSIan Rogers        "SampleAfterValue": "2000003",
4856f57cffSIan Rogers        "UMask": "0x18"
4956f57cffSIan Rogers    },
5056f57cffSIan Rogers    {
5156f57cffSIan Rogers        "BriefDescription": "Cycles Decode Stream Buffer (DSB) is delivering any Uop",
5256f57cffSIan Rogers        "CounterMask": "1",
5356f57cffSIan Rogers        "EventCode": "0x79",
5456f57cffSIan Rogers        "EventName": "IDQ.ALL_DSB_CYCLES_ANY_UOPS",
5556f57cffSIan Rogers        "PublicDescription": "This event counts the number of cycles  uops were  delivered to Instruction Decode Queue (IDQ) from the Decode Stream Buffer (DSB) path. Counting includes uops that may bypass the IDQ.",
5656f57cffSIan Rogers        "SampleAfterValue": "2000003",
5756f57cffSIan Rogers        "UMask": "0x18"
5856f57cffSIan Rogers    },
5956f57cffSIan Rogers    {
6056f57cffSIan Rogers        "BriefDescription": "Cycles MITE is delivering 4 Uops",
6156f57cffSIan Rogers        "CounterMask": "4",
6256f57cffSIan Rogers        "EventCode": "0x79",
6356f57cffSIan Rogers        "EventName": "IDQ.ALL_MITE_CYCLES_4_UOPS",
6456f57cffSIan Rogers        "PublicDescription": "This event counts the number of cycles 4  uops were  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).",
6556f57cffSIan Rogers        "SampleAfterValue": "2000003",
6656f57cffSIan Rogers        "UMask": "0x24"
6756f57cffSIan Rogers    },
6856f57cffSIan Rogers    {
6956f57cffSIan Rogers        "BriefDescription": "Cycles MITE is delivering any Uop",
7056f57cffSIan Rogers        "CounterMask": "1",
7156f57cffSIan Rogers        "EventCode": "0x79",
7256f57cffSIan Rogers        "EventName": "IDQ.ALL_MITE_CYCLES_ANY_UOPS",
7356f57cffSIan Rogers        "PublicDescription": "This event counts the number of cycles  uops were 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).",
7456f57cffSIan Rogers        "SampleAfterValue": "2000003",
7556f57cffSIan Rogers        "UMask": "0x24"
7656f57cffSIan Rogers    },
7756f57cffSIan Rogers    {
7856f57cffSIan Rogers        "BriefDescription": "Cycles when uops are being delivered to Instruction Decode Queue (IDQ) from Decode Stream Buffer (DSB) path",
7956f57cffSIan Rogers        "CounterMask": "1",
8056f57cffSIan Rogers        "EventCode": "0x79",
8156f57cffSIan Rogers        "EventName": "IDQ.DSB_CYCLES",
8256f57cffSIan Rogers        "PublicDescription": "This event 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.",
8356f57cffSIan Rogers        "SampleAfterValue": "2000003",
8456f57cffSIan Rogers        "UMask": "0x8"
8556f57cffSIan Rogers    },
8656f57cffSIan Rogers    {
8756f57cffSIan Rogers        "BriefDescription": "Uops delivered to Instruction Decode Queue (IDQ) from the Decode Stream Buffer (DSB) path",
8856f57cffSIan Rogers        "EventCode": "0x79",
8956f57cffSIan Rogers        "EventName": "IDQ.DSB_UOPS",
9056f57cffSIan Rogers        "PublicDescription": "This event 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.",
9156f57cffSIan Rogers        "SampleAfterValue": "2000003",
9256f57cffSIan Rogers        "UMask": "0x8"
9356f57cffSIan Rogers    },
9456f57cffSIan Rogers    {
9556f57cffSIan Rogers        "BriefDescription": "Instruction Decode Queue (IDQ) empty cycles",
9656f57cffSIan Rogers        "EventCode": "0x79",
9756f57cffSIan Rogers        "EventName": "IDQ.EMPTY",
9856f57cffSIan Rogers        "PublicDescription": "This counts the number of cycles that the instruction decoder queue is empty and can indicate that the application may be bound in the front end.  It does not determine whether there are uops being delivered to the Alloc stage since uops can be delivered by bypass skipping the Instruction Decode Queue (IDQ) when it is empty.",
9956f57cffSIan Rogers        "SampleAfterValue": "2000003",
10056f57cffSIan Rogers        "UMask": "0x2"
10156f57cffSIan Rogers    },
10256f57cffSIan Rogers    {
10356f57cffSIan Rogers        "BriefDescription": "Uops delivered to Instruction Decode Queue (IDQ) from MITE path",
10456f57cffSIan Rogers        "EventCode": "0x79",
10556f57cffSIan Rogers        "EventName": "IDQ.MITE_ALL_UOPS",
10656f57cffSIan Rogers        "PublicDescription": "This event 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).",
10756f57cffSIan Rogers        "SampleAfterValue": "2000003",
10856f57cffSIan Rogers        "UMask": "0x3c"
10956f57cffSIan Rogers    },
11056f57cffSIan Rogers    {
11156f57cffSIan Rogers        "BriefDescription": "Cycles when uops are being delivered to Instruction Decode Queue (IDQ) from MITE path",
11256f57cffSIan Rogers        "CounterMask": "1",
11356f57cffSIan Rogers        "EventCode": "0x79",
11456f57cffSIan Rogers        "EventName": "IDQ.MITE_CYCLES",
11556f57cffSIan Rogers        "PublicDescription": "This event 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.",
11656f57cffSIan Rogers        "SampleAfterValue": "2000003",
11756f57cffSIan Rogers        "UMask": "0x4"
11856f57cffSIan Rogers    },
11956f57cffSIan Rogers    {
12056f57cffSIan Rogers        "BriefDescription": "Uops delivered to Instruction Decode Queue (IDQ) from MITE path",
12156f57cffSIan Rogers        "EventCode": "0x79",
12256f57cffSIan Rogers        "EventName": "IDQ.MITE_UOPS",
12356f57cffSIan Rogers        "PublicDescription": "This event 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).",
12456f57cffSIan Rogers        "SampleAfterValue": "2000003",
12556f57cffSIan Rogers        "UMask": "0x4"
12656f57cffSIan Rogers    },
12756f57cffSIan Rogers    {
128*74a87b6aSIan Rogers        "BriefDescription": "Cycles when uops are being delivered to Instruction Decode Queue (IDQ) while Microcode Sequencer (MS) is busy",
12956f57cffSIan Rogers        "CounterMask": "1",
13056f57cffSIan Rogers        "EventCode": "0x79",
13156f57cffSIan Rogers        "EventName": "IDQ.MS_CYCLES",
132*74a87b6aSIan Rogers        "PublicDescription": "This event 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.",
13356f57cffSIan Rogers        "SampleAfterValue": "2000003",
13456f57cffSIan Rogers        "UMask": "0x30"
13556f57cffSIan Rogers    },
13656f57cffSIan Rogers    {
137*74a87b6aSIan 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",
13856f57cffSIan Rogers        "CounterMask": "1",
13956f57cffSIan Rogers        "EventCode": "0x79",
14056f57cffSIan Rogers        "EventName": "IDQ.MS_DSB_CYCLES",
14156f57cffSIan Rogers        "PublicDescription": "This event 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.",
14256f57cffSIan Rogers        "SampleAfterValue": "2000003",
14356f57cffSIan Rogers        "UMask": "0x10"
14456f57cffSIan Rogers    },
14556f57cffSIan Rogers    {
146*74a87b6aSIan Rogers        "BriefDescription": "Deliveries to Instruction Decode Queue (IDQ) initiated by Decode Stream Buffer (DSB) while Microcode Sequencer (MS) is busy",
14756f57cffSIan Rogers        "CounterMask": "1",
14856f57cffSIan Rogers        "EdgeDetect": "1",
14956f57cffSIan Rogers        "EventCode": "0x79",
15056f57cffSIan Rogers        "EventName": "IDQ.MS_DSB_OCCUR",
15156f57cffSIan Rogers        "PublicDescription": "This event counts the number of deliveries to Instruction Decode Queue (IDQ) initiated by Decode Stream Buffer (DSB) while the Microcode Sequencer (MS) is busy. Counting includes uops that may bypass the IDQ.",
15256f57cffSIan Rogers        "SampleAfterValue": "2000003",
15356f57cffSIan Rogers        "UMask": "0x10"
15456f57cffSIan Rogers    },
15556f57cffSIan Rogers    {
156*74a87b6aSIan Rogers        "BriefDescription": "Uops initiated by Decode Stream Buffer (DSB) that are being delivered to Instruction Decode Queue (IDQ) while Microcode Sequencer (MS) is busy",
15756f57cffSIan Rogers        "EventCode": "0x79",
15856f57cffSIan Rogers        "EventName": "IDQ.MS_DSB_UOPS",
15956f57cffSIan Rogers        "PublicDescription": "This event counts the number of uops initiated by Decode Stream Buffer (DSB) that are being delivered to Instruction Decode Queue (IDQ) while the Microcode Sequencer (MS) is busy. Counting includes uops that may bypass the IDQ.",
16056f57cffSIan Rogers        "SampleAfterValue": "2000003",
16156f57cffSIan Rogers        "UMask": "0x10"
16256f57cffSIan Rogers    },
16356f57cffSIan Rogers    {
164*74a87b6aSIan Rogers        "BriefDescription": "Uops initiated by MITE and delivered to Instruction Decode Queue (IDQ) while Microcode Sequencer (MS) is busy",
16556f57cffSIan Rogers        "EventCode": "0x79",
16656f57cffSIan Rogers        "EventName": "IDQ.MS_MITE_UOPS",
167*74a87b6aSIan Rogers        "PublicDescription": "This event 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.",
16856f57cffSIan Rogers        "SampleAfterValue": "2000003",
16956f57cffSIan Rogers        "UMask": "0x20"
17056f57cffSIan Rogers    },
17156f57cffSIan Rogers    {
17256f57cffSIan Rogers        "BriefDescription": "Number of switches from DSB (Decode Stream Buffer) or MITE (legacy decode pipeline) to the Microcode Sequencer.",
17356f57cffSIan Rogers        "CounterMask": "1",
17456f57cffSIan Rogers        "EdgeDetect": "1",
17556f57cffSIan Rogers        "EventCode": "0x79",
17656f57cffSIan Rogers        "EventName": "IDQ.MS_SWITCHES",
17756f57cffSIan Rogers        "SampleAfterValue": "2000003",
17856f57cffSIan Rogers        "UMask": "0x30"
17956f57cffSIan Rogers    },
18056f57cffSIan Rogers    {
181*74a87b6aSIan Rogers        "BriefDescription": "Uops delivered to Instruction Decode Queue (IDQ) while Microcode Sequencer (MS) is busy",
18256f57cffSIan Rogers        "EventCode": "0x79",
18356f57cffSIan Rogers        "EventName": "IDQ.MS_UOPS",
184*74a87b6aSIan Rogers        "PublicDescription": "This event counts the total number of uops 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.",
18556f57cffSIan Rogers        "SampleAfterValue": "2000003",
18656f57cffSIan Rogers        "UMask": "0x30"
18756f57cffSIan Rogers    },
18856f57cffSIan Rogers    {
18956f57cffSIan Rogers        "BriefDescription": "Uops not delivered to Resource Allocation Table (RAT) per thread when backend of the machine is not stalled",
19056f57cffSIan Rogers        "EventCode": "0x9C",
19156f57cffSIan Rogers        "EventName": "IDQ_UOPS_NOT_DELIVERED.CORE",
19256f57cffSIan Rogers        "PublicDescription": "This event 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:\n a. IDQ-Resource Allocation Table (RAT) pipe serves the other thread;\n b. Resource Allocation Table (RAT) is stalled for the thread (including uop drops and clear BE conditions); \n c. Instruction Decode Queue (IDQ) delivers four uops.",
19356f57cffSIan Rogers        "SampleAfterValue": "2000003",
19456f57cffSIan Rogers        "UMask": "0x1"
19556f57cffSIan Rogers    },
19656f57cffSIan Rogers    {
19756f57cffSIan 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",
19856f57cffSIan Rogers        "CounterMask": "4",
19956f57cffSIan Rogers        "EventCode": "0x9C",
20056f57cffSIan Rogers        "EventName": "IDQ_UOPS_NOT_DELIVERED.CYCLES_0_UOPS_DELIV.CORE",
20156f57cffSIan Rogers        "PublicDescription": "This event counts, on the per-thread basis, cycles when no uops are delivered to Resource Allocation Table (RAT). IDQ_Uops_Not_Delivered.core =4.",
20256f57cffSIan Rogers        "SampleAfterValue": "2000003",
20356f57cffSIan Rogers        "UMask": "0x1"
20456f57cffSIan Rogers    },
20556f57cffSIan Rogers    {
20656f57cffSIan Rogers        "BriefDescription": "Counts cycles FE delivered 4 uops or Resource Allocation Table (RAT) was stalling FE.",
20756f57cffSIan Rogers        "CounterMask": "1",
20856f57cffSIan Rogers        "EventCode": "0x9C",
20956f57cffSIan Rogers        "EventName": "IDQ_UOPS_NOT_DELIVERED.CYCLES_FE_WAS_OK",
21056f57cffSIan Rogers        "Invert": "1",
21156f57cffSIan Rogers        "SampleAfterValue": "2000003",
21256f57cffSIan Rogers        "UMask": "0x1"
21356f57cffSIan Rogers    },
21456f57cffSIan Rogers    {
21556f57cffSIan 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",
21656f57cffSIan Rogers        "CounterMask": "3",
21756f57cffSIan Rogers        "EventCode": "0x9C",
21856f57cffSIan Rogers        "EventName": "IDQ_UOPS_NOT_DELIVERED.CYCLES_LE_1_UOP_DELIV.CORE",
21956f57cffSIan Rogers        "PublicDescription": "This event 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.",
22056f57cffSIan Rogers        "SampleAfterValue": "2000003",
22156f57cffSIan Rogers        "UMask": "0x1"
22256f57cffSIan Rogers    },
22356f57cffSIan Rogers    {
22456f57cffSIan Rogers        "BriefDescription": "Cycles with less than 2 uops delivered by the front end.",
22556f57cffSIan Rogers        "CounterMask": "2",
22656f57cffSIan Rogers        "EventCode": "0x9C",
22756f57cffSIan Rogers        "EventName": "IDQ_UOPS_NOT_DELIVERED.CYCLES_LE_2_UOP_DELIV.CORE",
22856f57cffSIan Rogers        "SampleAfterValue": "2000003",
22956f57cffSIan Rogers        "UMask": "0x1"
23056f57cffSIan Rogers    },
23156f57cffSIan Rogers    {
23256f57cffSIan Rogers        "BriefDescription": "Cycles with less than 3 uops delivered by the front end.",
23356f57cffSIan Rogers        "CounterMask": "1",
23456f57cffSIan Rogers        "EventCode": "0x9C",
23556f57cffSIan Rogers        "EventName": "IDQ_UOPS_NOT_DELIVERED.CYCLES_LE_3_UOP_DELIV.CORE",
23656f57cffSIan Rogers        "SampleAfterValue": "2000003",
23756f57cffSIan Rogers        "UMask": "0x1"
23819c0389bSAndi Kleen    }
23919c0389bSAndi Kleen]
240