xref: /openbmc/linux/tools/perf/pmu-events/arch/x86/broadwell/frontend.json (revision 1ac731c529cd4d6adbce134754b51ff7d822b145)
1b74d1315SAndi Kleen[
2b74d1315SAndi Kleen    {
310e8d85fSIan 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.",
410e8d85fSIan Rogers        "EventCode": "0xe6",
510e8d85fSIan Rogers        "EventName": "BACLEARS.ANY",
610e8d85fSIan Rogers        "SampleAfterValue": "100003",
710e8d85fSIan Rogers        "UMask": "0x1f"
8b74d1315SAndi Kleen    },
9b74d1315SAndi Kleen    {
1010e8d85fSIan Rogers        "BriefDescription": "Decode Stream Buffer (DSB)-to-MITE switch true penalty cycles.",
1110e8d85fSIan Rogers        "EventCode": "0xAB",
1210e8d85fSIan Rogers        "EventName": "DSB2MITE_SWITCHES.PENALTY_CYCLES",
1310e8d85fSIan Rogers        "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.",
14b74d1315SAndi Kleen        "SampleAfterValue": "2000003",
1510e8d85fSIan Rogers        "UMask": "0x2"
16b74d1315SAndi Kleen    },
17b74d1315SAndi Kleen    {
1810e8d85fSIan Rogers        "BriefDescription": "Number of Instruction Cache, Streaming Buffer and Victim Cache Reads. both cacheable and noncacheable, including UC fetches",
1910e8d85fSIan Rogers        "EventCode": "0x80",
2010e8d85fSIan Rogers        "EventName": "ICACHE.HIT",
2110e8d85fSIan Rogers        "PublicDescription": "This event counts the number of both cacheable and noncacheable Instruction Cache, Streaming Buffer and Victim Cache Reads including UC fetches.",
22b74d1315SAndi Kleen        "SampleAfterValue": "2000003",
2310e8d85fSIan Rogers        "UMask": "0x1"
24b74d1315SAndi Kleen    },
25b74d1315SAndi Kleen    {
2610e8d85fSIan Rogers        "BriefDescription": "Cycles where a code fetch is stalled due to L1 instruction-cache miss.",
2710e8d85fSIan Rogers        "EventCode": "0x80",
2810e8d85fSIan Rogers        "EventName": "ICACHE.IFDATA_STALL",
2910e8d85fSIan Rogers        "PublicDescription": "This event counts cycles during which the demand fetch waits for data (wfdM104H) from L2 or iSB (opportunistic hit).",
30b3ab8adcSAndi Kleen        "SampleAfterValue": "2000003",
3110e8d85fSIan Rogers        "UMask": "0x4"
32b3ab8adcSAndi Kleen    },
33b3ab8adcSAndi Kleen    {
3410e8d85fSIan Rogers        "BriefDescription": "Number of Instruction Cache, Streaming Buffer and Victim Cache Misses. Includes Uncacheable accesses.",
3510e8d85fSIan Rogers        "EventCode": "0x80",
3610e8d85fSIan Rogers        "EventName": "ICACHE.MISSES",
3710e8d85fSIan Rogers        "PublicDescription": "This event counts the number of instruction cache, streaming buffer and victim cache misses. Counting includes UC accesses.",
3810e8d85fSIan Rogers        "SampleAfterValue": "200003",
3910e8d85fSIan Rogers        "UMask": "0x2"
40b74d1315SAndi Kleen    },
41b74d1315SAndi Kleen    {
42b74d1315SAndi Kleen        "BriefDescription": "Cycles Decode Stream Buffer (DSB) is delivering 4 Uops",
43b74d1315SAndi Kleen        "CounterMask": "4",
4410e8d85fSIan Rogers        "EventCode": "0x79",
4510e8d85fSIan Rogers        "EventName": "IDQ.ALL_DSB_CYCLES_4_UOPS",
4610e8d85fSIan 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.",
4710e8d85fSIan Rogers        "SampleAfterValue": "2000003",
4810e8d85fSIan Rogers        "UMask": "0x18"
49b74d1315SAndi Kleen    },
50b74d1315SAndi Kleen    {
51b74d1315SAndi Kleen        "BriefDescription": "Cycles Decode Stream Buffer (DSB) is delivering any Uop",
52b74d1315SAndi Kleen        "CounterMask": "1",
5310e8d85fSIan Rogers        "EventCode": "0x79",
5410e8d85fSIan Rogers        "EventName": "IDQ.ALL_DSB_CYCLES_ANY_UOPS",
5510e8d85fSIan 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.",
5610e8d85fSIan Rogers        "SampleAfterValue": "2000003",
5710e8d85fSIan Rogers        "UMask": "0x18"
58b74d1315SAndi Kleen    },
59b74d1315SAndi Kleen    {
60b74d1315SAndi Kleen        "BriefDescription": "Cycles MITE is delivering 4 Uops",
61b74d1315SAndi Kleen        "CounterMask": "4",
6210e8d85fSIan Rogers        "EventCode": "0x79",
6310e8d85fSIan Rogers        "EventName": "IDQ.ALL_MITE_CYCLES_4_UOPS",
6410e8d85fSIan 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).",
6510e8d85fSIan Rogers        "SampleAfterValue": "2000003",
6610e8d85fSIan Rogers        "UMask": "0x24"
67b74d1315SAndi Kleen    },
68b74d1315SAndi Kleen    {
69b74d1315SAndi Kleen        "BriefDescription": "Cycles MITE is delivering any Uop",
70b74d1315SAndi Kleen        "CounterMask": "1",
7110e8d85fSIan Rogers        "EventCode": "0x79",
7210e8d85fSIan Rogers        "EventName": "IDQ.ALL_MITE_CYCLES_ANY_UOPS",
7310e8d85fSIan 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).",
7410e8d85fSIan Rogers        "SampleAfterValue": "2000003",
7510e8d85fSIan Rogers        "UMask": "0x24"
76b74d1315SAndi Kleen    },
77b74d1315SAndi Kleen    {
7810e8d85fSIan Rogers        "BriefDescription": "Cycles when uops are being delivered to Instruction Decode Queue (IDQ) from Decode Stream Buffer (DSB) path",
7910e8d85fSIan Rogers        "CounterMask": "1",
8010e8d85fSIan Rogers        "EventCode": "0x79",
8110e8d85fSIan Rogers        "EventName": "IDQ.DSB_CYCLES",
8210e8d85fSIan 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.",
83b3ab8adcSAndi Kleen        "SampleAfterValue": "2000003",
8410e8d85fSIan Rogers        "UMask": "0x8"
85b3ab8adcSAndi Kleen    },
86b3ab8adcSAndi Kleen    {
8710e8d85fSIan Rogers        "BriefDescription": "Uops delivered to Instruction Decode Queue (IDQ) from the Decode Stream Buffer (DSB) path",
8810e8d85fSIan Rogers        "EventCode": "0x79",
8910e8d85fSIan Rogers        "EventName": "IDQ.DSB_UOPS",
9010e8d85fSIan 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.",
91b3ab8adcSAndi Kleen        "SampleAfterValue": "2000003",
9210e8d85fSIan Rogers        "UMask": "0x8"
9310e8d85fSIan Rogers    },
9410e8d85fSIan Rogers    {
9510e8d85fSIan Rogers        "BriefDescription": "Instruction Decode Queue (IDQ) empty cycles",
9610e8d85fSIan Rogers        "EventCode": "0x79",
9710e8d85fSIan Rogers        "EventName": "IDQ.EMPTY",
9810e8d85fSIan 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.",
9910e8d85fSIan Rogers        "SampleAfterValue": "2000003",
10010e8d85fSIan Rogers        "UMask": "0x2"
10110e8d85fSIan Rogers    },
10210e8d85fSIan Rogers    {
10310e8d85fSIan Rogers        "BriefDescription": "Uops delivered to Instruction Decode Queue (IDQ) from MITE path",
10410e8d85fSIan Rogers        "EventCode": "0x79",
10510e8d85fSIan Rogers        "EventName": "IDQ.MITE_ALL_UOPS",
10610e8d85fSIan 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).",
10710e8d85fSIan Rogers        "SampleAfterValue": "2000003",
10810e8d85fSIan Rogers        "UMask": "0x3c"
10910e8d85fSIan Rogers    },
11010e8d85fSIan Rogers    {
11110e8d85fSIan Rogers        "BriefDescription": "Cycles when uops are being delivered to Instruction Decode Queue (IDQ) from MITE path",
11210e8d85fSIan Rogers        "CounterMask": "1",
11310e8d85fSIan Rogers        "EventCode": "0x79",
11410e8d85fSIan Rogers        "EventName": "IDQ.MITE_CYCLES",
11510e8d85fSIan 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.",
11610e8d85fSIan Rogers        "SampleAfterValue": "2000003",
11710e8d85fSIan Rogers        "UMask": "0x4"
11810e8d85fSIan Rogers    },
11910e8d85fSIan Rogers    {
12010e8d85fSIan Rogers        "BriefDescription": "Uops delivered to Instruction Decode Queue (IDQ) from MITE path",
12110e8d85fSIan Rogers        "EventCode": "0x79",
12210e8d85fSIan Rogers        "EventName": "IDQ.MITE_UOPS",
12310e8d85fSIan 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).",
12410e8d85fSIan Rogers        "SampleAfterValue": "2000003",
12510e8d85fSIan Rogers        "UMask": "0x4"
12610e8d85fSIan Rogers    },
12710e8d85fSIan Rogers    {
128*78036545SIan Rogers        "BriefDescription": "Cycles when uops are being delivered to Instruction Decode Queue (IDQ) while Microcode Sequencer (MS) is busy",
129b3ab8adcSAndi Kleen        "CounterMask": "1",
13010e8d85fSIan Rogers        "EventCode": "0x79",
13110e8d85fSIan Rogers        "EventName": "IDQ.MS_CYCLES",
132*78036545SIan 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.",
13310e8d85fSIan Rogers        "SampleAfterValue": "2000003",
13410e8d85fSIan Rogers        "UMask": "0x30"
135b3ab8adcSAndi Kleen    },
136b3ab8adcSAndi Kleen    {
137*78036545SIan 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",
13810e8d85fSIan Rogers        "CounterMask": "1",
13910e8d85fSIan Rogers        "EventCode": "0x79",
14010e8d85fSIan Rogers        "EventName": "IDQ.MS_DSB_CYCLES",
14110e8d85fSIan 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.",
14210e8d85fSIan Rogers        "SampleAfterValue": "2000003",
14310e8d85fSIan Rogers        "UMask": "0x10"
14410e8d85fSIan Rogers    },
14510e8d85fSIan Rogers    {
146*78036545SIan Rogers        "BriefDescription": "Deliveries to Instruction Decode Queue (IDQ) initiated by Decode Stream Buffer (DSB) while Microcode Sequencer (MS) is busy",
14710e8d85fSIan Rogers        "CounterMask": "1",
148b3ab8adcSAndi Kleen        "EdgeDetect": "1",
14910e8d85fSIan Rogers        "EventCode": "0x79",
15010e8d85fSIan Rogers        "EventName": "IDQ.MS_DSB_OCCUR",
15110e8d85fSIan 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.",
15210e8d85fSIan Rogers        "SampleAfterValue": "2000003",
15310e8d85fSIan Rogers        "UMask": "0x10"
15410e8d85fSIan Rogers    },
15510e8d85fSIan Rogers    {
156*78036545SIan Rogers        "BriefDescription": "Uops initiated by Decode Stream Buffer (DSB) that are being delivered to Instruction Decode Queue (IDQ) while Microcode Sequencer (MS) is busy",
15710e8d85fSIan Rogers        "EventCode": "0x79",
15810e8d85fSIan Rogers        "EventName": "IDQ.MS_DSB_UOPS",
15910e8d85fSIan 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.",
16010e8d85fSIan Rogers        "SampleAfterValue": "2000003",
16110e8d85fSIan Rogers        "UMask": "0x10"
16210e8d85fSIan Rogers    },
16310e8d85fSIan Rogers    {
164*78036545SIan Rogers        "BriefDescription": "Uops initiated by MITE and delivered to Instruction Decode Queue (IDQ) while Microcode Sequencer (MS) is busy",
16510e8d85fSIan Rogers        "EventCode": "0x79",
16610e8d85fSIan Rogers        "EventName": "IDQ.MS_MITE_UOPS",
167*78036545SIan 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.",
16810e8d85fSIan Rogers        "SampleAfterValue": "2000003",
16910e8d85fSIan Rogers        "UMask": "0x20"
17010e8d85fSIan Rogers    },
17110e8d85fSIan Rogers    {
17210e8d85fSIan Rogers        "BriefDescription": "Number of switches from DSB (Decode Stream Buffer) or MITE (legacy decode pipeline) to the Microcode Sequencer.",
17310e8d85fSIan Rogers        "CounterMask": "1",
17410e8d85fSIan Rogers        "EdgeDetect": "1",
17510e8d85fSIan Rogers        "EventCode": "0x79",
176b3ab8adcSAndi Kleen        "EventName": "IDQ.MS_SWITCHES",
177b3ab8adcSAndi Kleen        "SampleAfterValue": "2000003",
17810e8d85fSIan Rogers        "UMask": "0x30"
179b3ab8adcSAndi Kleen    },
180b3ab8adcSAndi Kleen    {
181*78036545SIan Rogers        "BriefDescription": "Uops delivered to Instruction Decode Queue (IDQ) while Microcode Sequencer (MS) is busy",
182b74d1315SAndi Kleen        "EventCode": "0x79",
18310e8d85fSIan Rogers        "EventName": "IDQ.MS_UOPS",
184*78036545SIan 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.",
185b74d1315SAndi Kleen        "SampleAfterValue": "2000003",
18610e8d85fSIan Rogers        "UMask": "0x30"
187b74d1315SAndi Kleen    },
188b74d1315SAndi Kleen    {
189b74d1315SAndi Kleen        "BriefDescription": "Uops not delivered to Resource Allocation Table (RAT) per thread when backend of the machine is not stalled",
19010e8d85fSIan Rogers        "EventCode": "0x9C",
19110e8d85fSIan Rogers        "EventName": "IDQ_UOPS_NOT_DELIVERED.CORE",
19210e8d85fSIan 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.",
19310e8d85fSIan Rogers        "SampleAfterValue": "2000003",
19410e8d85fSIan Rogers        "UMask": "0x1"
195b74d1315SAndi Kleen    },
196b74d1315SAndi Kleen    {
197b74d1315SAndi Kleen        "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",
198b74d1315SAndi Kleen        "CounterMask": "4",
199b74d1315SAndi Kleen        "EventCode": "0x9C",
20010e8d85fSIan Rogers        "EventName": "IDQ_UOPS_NOT_DELIVERED.CYCLES_0_UOPS_DELIV.CORE",
20110e8d85fSIan 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.",
202b74d1315SAndi Kleen        "SampleAfterValue": "2000003",
20310e8d85fSIan Rogers        "UMask": "0x1"
204b74d1315SAndi Kleen    },
205b74d1315SAndi Kleen    {
20610e8d85fSIan Rogers        "BriefDescription": "Counts cycles FE delivered 4 uops or Resource Allocation Table (RAT) was stalling FE.",
20710e8d85fSIan Rogers        "CounterMask": "1",
20810e8d85fSIan Rogers        "EventCode": "0x9C",
20910e8d85fSIan Rogers        "EventName": "IDQ_UOPS_NOT_DELIVERED.CYCLES_FE_WAS_OK",
21010e8d85fSIan Rogers        "Invert": "1",
21110e8d85fSIan Rogers        "SampleAfterValue": "2000003",
21210e8d85fSIan Rogers        "UMask": "0x1"
21310e8d85fSIan Rogers    },
21410e8d85fSIan Rogers    {
21510e8d85fSIan 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",
21610e8d85fSIan Rogers        "CounterMask": "3",
21710e8d85fSIan Rogers        "EventCode": "0x9C",
21810e8d85fSIan Rogers        "EventName": "IDQ_UOPS_NOT_DELIVERED.CYCLES_LE_1_UOP_DELIV.CORE",
21910e8d85fSIan 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.",
22010e8d85fSIan Rogers        "SampleAfterValue": "2000003",
22110e8d85fSIan Rogers        "UMask": "0x1"
22210e8d85fSIan Rogers    },
22310e8d85fSIan Rogers    {
22410e8d85fSIan Rogers        "BriefDescription": "Cycles with less than 2 uops delivered by the front end.",
22510e8d85fSIan Rogers        "CounterMask": "2",
22610e8d85fSIan Rogers        "EventCode": "0x9C",
227b74d1315SAndi Kleen        "EventName": "IDQ_UOPS_NOT_DELIVERED.CYCLES_LE_2_UOP_DELIV.CORE",
228b74d1315SAndi Kleen        "SampleAfterValue": "2000003",
22910e8d85fSIan Rogers        "UMask": "0x1"
230b74d1315SAndi Kleen    },
231b74d1315SAndi Kleen    {
23210e8d85fSIan Rogers        "BriefDescription": "Cycles with less than 3 uops delivered by the front end.",
23310e8d85fSIan Rogers        "CounterMask": "1",
23410e8d85fSIan Rogers        "EventCode": "0x9C",
235b74d1315SAndi Kleen        "EventName": "IDQ_UOPS_NOT_DELIVERED.CYCLES_LE_3_UOP_DELIV.CORE",
236b74d1315SAndi Kleen        "SampleAfterValue": "2000003",
23710e8d85fSIan Rogers        "UMask": "0x1"
238b74d1315SAndi Kleen    }
239b74d1315SAndi Kleen]
240