xref: /openbmc/linux/tools/perf/pmu-events/arch/x86/broadwellde/frontend.json (revision 1ac731c529cd4d6adbce134754b51ff7d822b145)
127b565b1SAndi Kleen[
227b565b1SAndi Kleen    {
334cb72efSIan 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.",
434cb72efSIan Rogers        "EventCode": "0xe6",
534cb72efSIan Rogers        "EventName": "BACLEARS.ANY",
634cb72efSIan Rogers        "SampleAfterValue": "100003",
734cb72efSIan Rogers        "UMask": "0x1f"
827b565b1SAndi Kleen    },
927b565b1SAndi Kleen    {
1027b565b1SAndi Kleen        "BriefDescription": "Decode Stream Buffer (DSB)-to-MITE switch true penalty cycles.",
1134cb72efSIan Rogers        "EventCode": "0xAB",
1227b565b1SAndi Kleen        "EventName": "DSB2MITE_SWITCHES.PENALTY_CYCLES",
13fae0a4dfSAndi 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.",
1427b565b1SAndi Kleen        "SampleAfterValue": "2000003",
1534cb72efSIan Rogers        "UMask": "0x2"
1634cb72efSIan Rogers    },
1734cb72efSIan Rogers    {
1834cb72efSIan Rogers        "BriefDescription": "Number of Instruction Cache, Streaming Buffer and Victim Cache Reads. both cacheable and noncacheable, including UC fetches",
1934cb72efSIan Rogers        "EventCode": "0x80",
2034cb72efSIan Rogers        "EventName": "ICACHE.HIT",
2134cb72efSIan Rogers        "PublicDescription": "This event counts the number of both cacheable and noncacheable Instruction Cache, Streaming Buffer and Victim Cache Reads including UC fetches.",
2234cb72efSIan Rogers        "SampleAfterValue": "2000003",
2334cb72efSIan Rogers        "UMask": "0x1"
2434cb72efSIan Rogers    },
2534cb72efSIan Rogers    {
2634cb72efSIan Rogers        "BriefDescription": "Cycles where a code fetch is stalled due to L1 instruction-cache miss.",
2734cb72efSIan Rogers        "EventCode": "0x80",
2834cb72efSIan Rogers        "EventName": "ICACHE.IFDATA_STALL",
2934cb72efSIan Rogers        "PublicDescription": "This event counts cycles during which the demand fetch waits for data (wfdM104H) from L2 or iSB (opportunistic hit).",
3034cb72efSIan Rogers        "SampleAfterValue": "2000003",
3134cb72efSIan Rogers        "UMask": "0x4"
3234cb72efSIan Rogers    },
3334cb72efSIan Rogers    {
3434cb72efSIan Rogers        "BriefDescription": "Number of Instruction Cache, Streaming Buffer and Victim Cache Misses. Includes Uncacheable accesses.",
3534cb72efSIan Rogers        "EventCode": "0x80",
3634cb72efSIan Rogers        "EventName": "ICACHE.MISSES",
3734cb72efSIan Rogers        "PublicDescription": "This event counts the number of instruction cache, streaming buffer and victim cache misses. Counting includes UC accesses.",
3834cb72efSIan Rogers        "SampleAfterValue": "200003",
3934cb72efSIan Rogers        "UMask": "0x2"
4034cb72efSIan Rogers    },
4134cb72efSIan Rogers    {
4234cb72efSIan Rogers        "BriefDescription": "Cycles Decode Stream Buffer (DSB) is delivering 4 Uops",
4334cb72efSIan Rogers        "CounterMask": "4",
4434cb72efSIan Rogers        "EventCode": "0x79",
4534cb72efSIan Rogers        "EventName": "IDQ.ALL_DSB_CYCLES_4_UOPS",
4634cb72efSIan 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.",
4734cb72efSIan Rogers        "SampleAfterValue": "2000003",
4834cb72efSIan Rogers        "UMask": "0x18"
4934cb72efSIan Rogers    },
5034cb72efSIan Rogers    {
5134cb72efSIan Rogers        "BriefDescription": "Cycles Decode Stream Buffer (DSB) is delivering any Uop",
5234cb72efSIan Rogers        "CounterMask": "1",
5334cb72efSIan Rogers        "EventCode": "0x79",
5434cb72efSIan Rogers        "EventName": "IDQ.ALL_DSB_CYCLES_ANY_UOPS",
5534cb72efSIan 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.",
5634cb72efSIan Rogers        "SampleAfterValue": "2000003",
5734cb72efSIan Rogers        "UMask": "0x18"
5834cb72efSIan Rogers    },
5934cb72efSIan Rogers    {
6034cb72efSIan Rogers        "BriefDescription": "Cycles MITE is delivering 4 Uops",
6134cb72efSIan Rogers        "CounterMask": "4",
6234cb72efSIan Rogers        "EventCode": "0x79",
6334cb72efSIan Rogers        "EventName": "IDQ.ALL_MITE_CYCLES_4_UOPS",
6434cb72efSIan 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).",
6534cb72efSIan Rogers        "SampleAfterValue": "2000003",
6634cb72efSIan Rogers        "UMask": "0x24"
6734cb72efSIan Rogers    },
6834cb72efSIan Rogers    {
6934cb72efSIan Rogers        "BriefDescription": "Cycles MITE is delivering any Uop",
7034cb72efSIan Rogers        "CounterMask": "1",
7134cb72efSIan Rogers        "EventCode": "0x79",
7234cb72efSIan Rogers        "EventName": "IDQ.ALL_MITE_CYCLES_ANY_UOPS",
7334cb72efSIan 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).",
7434cb72efSIan Rogers        "SampleAfterValue": "2000003",
7534cb72efSIan Rogers        "UMask": "0x24"
7634cb72efSIan Rogers    },
7734cb72efSIan Rogers    {
7834cb72efSIan Rogers        "BriefDescription": "Cycles when uops are being delivered to Instruction Decode Queue (IDQ) from Decode Stream Buffer (DSB) path",
7934cb72efSIan Rogers        "CounterMask": "1",
8034cb72efSIan Rogers        "EventCode": "0x79",
8134cb72efSIan Rogers        "EventName": "IDQ.DSB_CYCLES",
8234cb72efSIan 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.",
8334cb72efSIan Rogers        "SampleAfterValue": "2000003",
8434cb72efSIan Rogers        "UMask": "0x8"
8534cb72efSIan Rogers    },
8634cb72efSIan Rogers    {
8734cb72efSIan Rogers        "BriefDescription": "Uops delivered to Instruction Decode Queue (IDQ) from the Decode Stream Buffer (DSB) path",
8834cb72efSIan Rogers        "EventCode": "0x79",
8934cb72efSIan Rogers        "EventName": "IDQ.DSB_UOPS",
9034cb72efSIan 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.",
9134cb72efSIan Rogers        "SampleAfterValue": "2000003",
9234cb72efSIan Rogers        "UMask": "0x8"
9334cb72efSIan Rogers    },
9434cb72efSIan Rogers    {
9534cb72efSIan Rogers        "BriefDescription": "Instruction Decode Queue (IDQ) empty cycles",
9634cb72efSIan Rogers        "EventCode": "0x79",
9734cb72efSIan Rogers        "EventName": "IDQ.EMPTY",
9834cb72efSIan 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.",
9934cb72efSIan Rogers        "SampleAfterValue": "2000003",
10034cb72efSIan Rogers        "UMask": "0x2"
10134cb72efSIan Rogers    },
10234cb72efSIan Rogers    {
10334cb72efSIan Rogers        "BriefDescription": "Uops delivered to Instruction Decode Queue (IDQ) from MITE path",
10434cb72efSIan Rogers        "EventCode": "0x79",
10534cb72efSIan Rogers        "EventName": "IDQ.MITE_ALL_UOPS",
10634cb72efSIan 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).",
10734cb72efSIan Rogers        "SampleAfterValue": "2000003",
10834cb72efSIan Rogers        "UMask": "0x3c"
10934cb72efSIan Rogers    },
11034cb72efSIan Rogers    {
11134cb72efSIan Rogers        "BriefDescription": "Cycles when uops are being delivered to Instruction Decode Queue (IDQ) from MITE path",
11234cb72efSIan Rogers        "CounterMask": "1",
11334cb72efSIan Rogers        "EventCode": "0x79",
11434cb72efSIan Rogers        "EventName": "IDQ.MITE_CYCLES",
11534cb72efSIan 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.",
11634cb72efSIan Rogers        "SampleAfterValue": "2000003",
11734cb72efSIan Rogers        "UMask": "0x4"
11834cb72efSIan Rogers    },
11934cb72efSIan Rogers    {
12034cb72efSIan Rogers        "BriefDescription": "Uops delivered to Instruction Decode Queue (IDQ) from MITE path",
12134cb72efSIan Rogers        "EventCode": "0x79",
12234cb72efSIan Rogers        "EventName": "IDQ.MITE_UOPS",
12334cb72efSIan 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).",
12434cb72efSIan Rogers        "SampleAfterValue": "2000003",
12534cb72efSIan Rogers        "UMask": "0x4"
12634cb72efSIan Rogers    },
12734cb72efSIan Rogers    {
128*8aae803fSIan Rogers        "BriefDescription": "Cycles when uops are being delivered to Instruction Decode Queue (IDQ) while Microcode Sequencer (MS) is busy",
12934cb72efSIan Rogers        "CounterMask": "1",
13034cb72efSIan Rogers        "EventCode": "0x79",
13134cb72efSIan Rogers        "EventName": "IDQ.MS_CYCLES",
132*8aae803fSIan 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.",
13334cb72efSIan Rogers        "SampleAfterValue": "2000003",
13434cb72efSIan Rogers        "UMask": "0x30"
13534cb72efSIan Rogers    },
13634cb72efSIan Rogers    {
137*8aae803fSIan 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",
13834cb72efSIan Rogers        "CounterMask": "1",
13934cb72efSIan Rogers        "EventCode": "0x79",
14034cb72efSIan Rogers        "EventName": "IDQ.MS_DSB_CYCLES",
14134cb72efSIan 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.",
14234cb72efSIan Rogers        "SampleAfterValue": "2000003",
14334cb72efSIan Rogers        "UMask": "0x10"
14434cb72efSIan Rogers    },
14534cb72efSIan Rogers    {
146*8aae803fSIan Rogers        "BriefDescription": "Deliveries to Instruction Decode Queue (IDQ) initiated by Decode Stream Buffer (DSB) while Microcode Sequencer (MS) is busy",
14734cb72efSIan Rogers        "CounterMask": "1",
14834cb72efSIan Rogers        "EdgeDetect": "1",
14934cb72efSIan Rogers        "EventCode": "0x79",
15034cb72efSIan Rogers        "EventName": "IDQ.MS_DSB_OCCUR",
15134cb72efSIan 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.",
15234cb72efSIan Rogers        "SampleAfterValue": "2000003",
15334cb72efSIan Rogers        "UMask": "0x10"
15434cb72efSIan Rogers    },
15534cb72efSIan Rogers    {
156*8aae803fSIan Rogers        "BriefDescription": "Uops initiated by Decode Stream Buffer (DSB) that are being delivered to Instruction Decode Queue (IDQ) while Microcode Sequencer (MS) is busy",
15734cb72efSIan Rogers        "EventCode": "0x79",
15834cb72efSIan Rogers        "EventName": "IDQ.MS_DSB_UOPS",
15934cb72efSIan 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.",
16034cb72efSIan Rogers        "SampleAfterValue": "2000003",
16134cb72efSIan Rogers        "UMask": "0x10"
16234cb72efSIan Rogers    },
16334cb72efSIan Rogers    {
164*8aae803fSIan Rogers        "BriefDescription": "Uops initiated by MITE and delivered to Instruction Decode Queue (IDQ) while Microcode Sequencer (MS) is busy",
16534cb72efSIan Rogers        "EventCode": "0x79",
16634cb72efSIan Rogers        "EventName": "IDQ.MS_MITE_UOPS",
167*8aae803fSIan 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.",
16834cb72efSIan Rogers        "SampleAfterValue": "2000003",
16934cb72efSIan Rogers        "UMask": "0x20"
17034cb72efSIan Rogers    },
17134cb72efSIan Rogers    {
17234cb72efSIan Rogers        "BriefDescription": "Number of switches from DSB (Decode Stream Buffer) or MITE (legacy decode pipeline) to the Microcode Sequencer.",
17334cb72efSIan Rogers        "CounterMask": "1",
17434cb72efSIan Rogers        "EdgeDetect": "1",
17534cb72efSIan Rogers        "EventCode": "0x79",
17634cb72efSIan Rogers        "EventName": "IDQ.MS_SWITCHES",
17734cb72efSIan Rogers        "SampleAfterValue": "2000003",
17834cb72efSIan Rogers        "UMask": "0x30"
17934cb72efSIan Rogers    },
18034cb72efSIan Rogers    {
181*8aae803fSIan Rogers        "BriefDescription": "Uops delivered to Instruction Decode Queue (IDQ) while Microcode Sequencer (MS) is busy",
18234cb72efSIan Rogers        "EventCode": "0x79",
18334cb72efSIan Rogers        "EventName": "IDQ.MS_UOPS",
184*8aae803fSIan 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.",
18534cb72efSIan Rogers        "SampleAfterValue": "2000003",
18634cb72efSIan Rogers        "UMask": "0x30"
18734cb72efSIan Rogers    },
18834cb72efSIan Rogers    {
18934cb72efSIan Rogers        "BriefDescription": "Uops not delivered to Resource Allocation Table (RAT) per thread when backend of the machine is not stalled",
19034cb72efSIan Rogers        "EventCode": "0x9C",
19134cb72efSIan Rogers        "EventName": "IDQ_UOPS_NOT_DELIVERED.CORE",
19234cb72efSIan 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.",
19334cb72efSIan Rogers        "SampleAfterValue": "2000003",
19434cb72efSIan Rogers        "UMask": "0x1"
19534cb72efSIan Rogers    },
19634cb72efSIan Rogers    {
19734cb72efSIan 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",
19834cb72efSIan Rogers        "CounterMask": "4",
19934cb72efSIan Rogers        "EventCode": "0x9C",
20034cb72efSIan Rogers        "EventName": "IDQ_UOPS_NOT_DELIVERED.CYCLES_0_UOPS_DELIV.CORE",
20134cb72efSIan 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.",
20234cb72efSIan Rogers        "SampleAfterValue": "2000003",
20334cb72efSIan Rogers        "UMask": "0x1"
20434cb72efSIan Rogers    },
20534cb72efSIan Rogers    {
20634cb72efSIan Rogers        "BriefDescription": "Counts cycles FE delivered 4 uops or Resource Allocation Table (RAT) was stalling FE.",
20734cb72efSIan Rogers        "CounterMask": "1",
20834cb72efSIan Rogers        "EventCode": "0x9C",
20934cb72efSIan Rogers        "EventName": "IDQ_UOPS_NOT_DELIVERED.CYCLES_FE_WAS_OK",
21034cb72efSIan Rogers        "Invert": "1",
21134cb72efSIan Rogers        "SampleAfterValue": "2000003",
21234cb72efSIan Rogers        "UMask": "0x1"
21334cb72efSIan Rogers    },
21434cb72efSIan Rogers    {
21534cb72efSIan 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",
21634cb72efSIan Rogers        "CounterMask": "3",
21734cb72efSIan Rogers        "EventCode": "0x9C",
21834cb72efSIan Rogers        "EventName": "IDQ_UOPS_NOT_DELIVERED.CYCLES_LE_1_UOP_DELIV.CORE",
21934cb72efSIan 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.",
22034cb72efSIan Rogers        "SampleAfterValue": "2000003",
22134cb72efSIan Rogers        "UMask": "0x1"
22234cb72efSIan Rogers    },
22334cb72efSIan Rogers    {
22434cb72efSIan Rogers        "BriefDescription": "Cycles with less than 2 uops delivered by the front end.",
22534cb72efSIan Rogers        "CounterMask": "2",
22634cb72efSIan Rogers        "EventCode": "0x9C",
22734cb72efSIan Rogers        "EventName": "IDQ_UOPS_NOT_DELIVERED.CYCLES_LE_2_UOP_DELIV.CORE",
22834cb72efSIan Rogers        "SampleAfterValue": "2000003",
22934cb72efSIan Rogers        "UMask": "0x1"
23034cb72efSIan Rogers    },
23134cb72efSIan Rogers    {
23234cb72efSIan Rogers        "BriefDescription": "Cycles with less than 3 uops delivered by the front end.",
23334cb72efSIan Rogers        "CounterMask": "1",
23434cb72efSIan Rogers        "EventCode": "0x9C",
23534cb72efSIan Rogers        "EventName": "IDQ_UOPS_NOT_DELIVERED.CYCLES_LE_3_UOP_DELIV.CORE",
23634cb72efSIan Rogers        "SampleAfterValue": "2000003",
23734cb72efSIan Rogers        "UMask": "0x1"
23827b565b1SAndi Kleen    }
23927b565b1SAndi Kleen]
240