xref: /openbmc/linux/tools/perf/pmu-events/arch/x86/elkhartlake/pipeline.json (revision 2612e3bbc0386368a850140a6c9b990cd496a5ec)
1aa1bd892SJin Yao[
2aa1bd892SJin Yao    {
3aa1bd892SJin Yao        "BriefDescription": "Counts the total number of branch instructions retired for all branch types.",
4aa1bd892SJin Yao        "EventCode": "0xc4",
5aa1bd892SJin Yao        "EventName": "BR_INST_RETIRED.ALL_BRANCHES",
6aa1bd892SJin Yao        "PEBS": "1",
7aa1bd892SJin Yao        "PublicDescription": "Counts the total number of instructions in which the instruction pointer (IP) of the processor is resteered due to a branch instruction and the branch instruction successfully retires.  All branch type instructions are accounted for.",
8aa1bd892SJin Yao        "SampleAfterValue": "200003"
9aa1bd892SJin Yao    },
10aa1bd892SJin Yao    {
11aa1bd892SJin Yao        "BriefDescription": "Counts the number of near CALL branch instructions retired.",
12aa1bd892SJin Yao        "EventCode": "0xc4",
13aa1bd892SJin Yao        "EventName": "BR_INST_RETIRED.CALL",
14aa1bd892SJin Yao        "PEBS": "1",
15aa1bd892SJin Yao        "SampleAfterValue": "200003",
16aa1bd892SJin Yao        "UMask": "0xf9"
17aa1bd892SJin Yao    },
18aa1bd892SJin Yao    {
19aa1bd892SJin Yao        "BriefDescription": "Counts the number of far branch instructions retired, includes far jump, far call and return, and interrupt call and return.",
20aa1bd892SJin Yao        "EventCode": "0xc4",
21aa1bd892SJin Yao        "EventName": "BR_INST_RETIRED.FAR_BRANCH",
22aa1bd892SJin Yao        "PEBS": "1",
23aa1bd892SJin Yao        "SampleAfterValue": "200003",
24aa1bd892SJin Yao        "UMask": "0xbf"
25aa1bd892SJin Yao    },
26aa1bd892SJin Yao    {
27aa1bd892SJin Yao        "BriefDescription": "Counts the number of near indirect CALL branch instructions retired.",
28aa1bd892SJin Yao        "EventCode": "0xc4",
29aa1bd892SJin Yao        "EventName": "BR_INST_RETIRED.IND_CALL",
30aa1bd892SJin Yao        "PEBS": "1",
31aa1bd892SJin Yao        "SampleAfterValue": "200003",
32aa1bd892SJin Yao        "UMask": "0xfb"
33aa1bd892SJin Yao    },
34aa1bd892SJin Yao    {
35aa1bd892SJin Yao        "BriefDescription": "Counts the number of retired JCC (Jump on Conditional Code) branch instructions retired, includes both taken and not taken branches.",
36aa1bd892SJin Yao        "EventCode": "0xc4",
37aa1bd892SJin Yao        "EventName": "BR_INST_RETIRED.JCC",
38aa1bd892SJin Yao        "PEBS": "1",
39aa1bd892SJin Yao        "SampleAfterValue": "200003",
40aa1bd892SJin Yao        "UMask": "0x7e"
41aa1bd892SJin Yao    },
42aa1bd892SJin Yao    {
43aa1bd892SJin Yao        "BriefDescription": "Counts the number of near indirect JMP and near indirect CALL branch instructions retired.",
44aa1bd892SJin Yao        "EventCode": "0xc4",
45aa1bd892SJin Yao        "EventName": "BR_INST_RETIRED.NON_RETURN_IND",
46aa1bd892SJin Yao        "PEBS": "1",
47aa1bd892SJin Yao        "SampleAfterValue": "200003",
48aa1bd892SJin Yao        "UMask": "0xeb"
49aa1bd892SJin Yao    },
50aa1bd892SJin Yao    {
51aa1bd892SJin Yao        "BriefDescription": "Counts the number of near relative CALL branch instructions retired.",
52aa1bd892SJin Yao        "EventCode": "0xc4",
53aa1bd892SJin Yao        "EventName": "BR_INST_RETIRED.REL_CALL",
54aa1bd892SJin Yao        "PEBS": "1",
55aa1bd892SJin Yao        "SampleAfterValue": "200003",
56aa1bd892SJin Yao        "UMask": "0xfd"
57aa1bd892SJin Yao    },
58aa1bd892SJin Yao    {
59aa1bd892SJin Yao        "BriefDescription": "Counts the number of near RET branch instructions retired.",
60aa1bd892SJin Yao        "EventCode": "0xc4",
61aa1bd892SJin Yao        "EventName": "BR_INST_RETIRED.RETURN",
62aa1bd892SJin Yao        "PEBS": "1",
63aa1bd892SJin Yao        "SampleAfterValue": "200003",
64aa1bd892SJin Yao        "UMask": "0xf7"
65aa1bd892SJin Yao    },
66aa1bd892SJin Yao    {
67aa1bd892SJin Yao        "BriefDescription": "Counts the number of taken JCC (Jump on Conditional Code) branch instructions retired.",
68aa1bd892SJin Yao        "EventCode": "0xc4",
69aa1bd892SJin Yao        "EventName": "BR_INST_RETIRED.TAKEN_JCC",
70aa1bd892SJin Yao        "PEBS": "1",
71aa1bd892SJin Yao        "SampleAfterValue": "200003",
72aa1bd892SJin Yao        "UMask": "0xfe"
73aa1bd892SJin Yao    },
74aa1bd892SJin Yao    {
75aa1bd892SJin Yao        "BriefDescription": "Counts the total number of mispredicted branch instructions retired for all branch types.",
76aa1bd892SJin Yao        "EventCode": "0xc5",
77aa1bd892SJin Yao        "EventName": "BR_MISP_RETIRED.ALL_BRANCHES",
78aa1bd892SJin Yao        "PEBS": "1",
79aa1bd892SJin Yao        "PublicDescription": "Counts the total number of mispredicted branch instructions retired.  All branch type instructions are accounted for.  Prediction of the branch target address enables the processor to begin executing instructions before the non-speculative execution path is known. The branch prediction unit (BPU) predicts the target address based on the instruction pointer (IP) of the branch and on the execution path through which execution reached this IP.    A branch misprediction occurs when the prediction is wrong, and results in discarding all instructions executed in the speculative path and re-fetching from the correct path.",
80aa1bd892SJin Yao        "SampleAfterValue": "200003"
81aa1bd892SJin Yao    },
82aa1bd892SJin Yao    {
83aa1bd892SJin Yao        "BriefDescription": "Counts the number of mispredicted near indirect CALL branch instructions retired.",
84aa1bd892SJin Yao        "EventCode": "0xc5",
85aa1bd892SJin Yao        "EventName": "BR_MISP_RETIRED.IND_CALL",
86aa1bd892SJin Yao        "PEBS": "1",
87aa1bd892SJin Yao        "SampleAfterValue": "200003",
88aa1bd892SJin Yao        "UMask": "0xfb"
89aa1bd892SJin Yao    },
90aa1bd892SJin Yao    {
91aa1bd892SJin Yao        "BriefDescription": "Counts the number of mispredicted JCC (Jump on Conditional Code) branch instructions retired.",
92aa1bd892SJin Yao        "EventCode": "0xc5",
93aa1bd892SJin Yao        "EventName": "BR_MISP_RETIRED.JCC",
94aa1bd892SJin Yao        "PEBS": "1",
95aa1bd892SJin Yao        "SampleAfterValue": "200003",
96aa1bd892SJin Yao        "UMask": "0x7e"
97aa1bd892SJin Yao    },
98aa1bd892SJin Yao    {
993c9c3157SIan Rogers        "BriefDescription": "Counts the number of mispredicted near indirect JMP and near indirect CALL branch instructions retired.",
1003c9c3157SIan Rogers        "EventCode": "0xc5",
1013c9c3157SIan Rogers        "EventName": "BR_MISP_RETIRED.NON_RETURN_IND",
1023c9c3157SIan Rogers        "PEBS": "1",
1033c9c3157SIan Rogers        "SampleAfterValue": "200003",
1043c9c3157SIan Rogers        "UMask": "0xeb"
1053c9c3157SIan Rogers    },
1063c9c3157SIan Rogers    {
107aa1bd892SJin Yao        "BriefDescription": "Counts the number of mispredicted near RET branch instructions retired.",
108aa1bd892SJin Yao        "EventCode": "0xc5",
109aa1bd892SJin Yao        "EventName": "BR_MISP_RETIRED.RETURN",
110aa1bd892SJin Yao        "PEBS": "1",
111aa1bd892SJin Yao        "SampleAfterValue": "200003",
112aa1bd892SJin Yao        "UMask": "0xf7"
113aa1bd892SJin Yao    },
114aa1bd892SJin Yao    {
115aa1bd892SJin Yao        "BriefDescription": "Counts the number of mispredicted taken JCC (Jump on Conditional Code) branch instructions retired.",
116aa1bd892SJin Yao        "EventCode": "0xc5",
117aa1bd892SJin Yao        "EventName": "BR_MISP_RETIRED.TAKEN_JCC",
118aa1bd892SJin Yao        "PEBS": "1",
119aa1bd892SJin Yao        "SampleAfterValue": "200003",
120aa1bd892SJin Yao        "UMask": "0xfe"
121aa1bd892SJin Yao    },
122aa1bd892SJin Yao    {
1238f1a6982SIan Rogers        "BriefDescription": "Counts the total number of BTCLEARS.",
1248f1a6982SIan Rogers        "EventCode": "0xe8",
1258f1a6982SIan Rogers        "EventName": "BTCLEAR.ANY",
1268f1a6982SIan Rogers        "PublicDescription": "Counts the total number of BTCLEARS which occurs when the Branch Target Buffer (BTB) predicts a taken branch.",
1278f1a6982SIan Rogers        "SampleAfterValue": "200003"
1288f1a6982SIan Rogers    },
1298f1a6982SIan Rogers    {
130aa1bd892SJin Yao        "BriefDescription": "Counts the number of unhalted core clock cycles. (Fixed event)",
131aa1bd892SJin Yao        "EventName": "CPU_CLK_UNHALTED.CORE",
132aa1bd892SJin Yao        "PublicDescription": "Counts the number of core cycles while the core is not in a halt state. The core enters the halt state when it is running the HLT instruction. The core frequency may change from time to time. For this reason this event may have a changing ratio with regards to time. This event uses fixed counter 1.",
133aa1bd892SJin Yao        "SampleAfterValue": "2000003",
134aa1bd892SJin Yao        "UMask": "0x2"
135aa1bd892SJin Yao    },
136aa1bd892SJin Yao    {
137aa1bd892SJin Yao        "BriefDescription": "Counts the number of unhalted core clock cycles.",
138aa1bd892SJin Yao        "EventCode": "0x3c",
139aa1bd892SJin Yao        "EventName": "CPU_CLK_UNHALTED.CORE_P",
140aa1bd892SJin Yao        "PublicDescription": "Counts the number of core cycles while the core is not in a halt state. The core enters the halt state when it is running the HLT instruction. The core frequency may change from time to time. For this reason this event may have a changing ratio with regards to time. This event uses a programmable general purpose performance counter.",
141aa1bd892SJin Yao        "SampleAfterValue": "2000003"
142aa1bd892SJin Yao    },
143aa1bd892SJin Yao    {
144aa1bd892SJin Yao        "BriefDescription": "Counts the number of unhalted reference clock cycles at TSC frequency.",
145aa1bd892SJin Yao        "EventCode": "0x3c",
146aa1bd892SJin Yao        "EventName": "CPU_CLK_UNHALTED.REF",
147aa1bd892SJin Yao        "PublicDescription": "Counts the number of reference cycles that the core is not in a halt state. The core enters the halt state when it is running the HLT instruction. This event is not affected by core frequency changes and increments at a fixed frequency that is also used for the Time Stamp Counter (TSC). This event uses fixed counter 2.",
148aa1bd892SJin Yao        "SampleAfterValue": "2000003",
149aa1bd892SJin Yao        "UMask": "0x1"
150aa1bd892SJin Yao    },
151aa1bd892SJin Yao    {
152aa1bd892SJin Yao        "BriefDescription": "Counts the number of unhalted reference clock cycles at TSC frequency. (Fixed event)",
153aa1bd892SJin Yao        "EventName": "CPU_CLK_UNHALTED.REF_TSC",
154aa1bd892SJin Yao        "PublicDescription": "Counts the number of reference cycles that the core is not in a halt state. The core enters the halt state when it is running the HLT instruction. This event is not affected by core frequency changes and increments at a fixed frequency that is also used for the Time Stamp Counter (TSC). This event uses fixed counter 2.",
155aa1bd892SJin Yao        "SampleAfterValue": "2000003",
156aa1bd892SJin Yao        "UMask": "0x3"
157aa1bd892SJin Yao    },
158aa1bd892SJin Yao    {
159aa1bd892SJin Yao        "BriefDescription": "Counts the number of unhalted reference clock cycles at TSC frequency.",
160aa1bd892SJin Yao        "EventCode": "0x3c",
161aa1bd892SJin Yao        "EventName": "CPU_CLK_UNHALTED.REF_TSC_P",
162aa1bd892SJin Yao        "PublicDescription": "Counts the number of reference cycles that the core is not in a halt state. The core enters the halt state when it is running the HLT instruction. This event is not affected by core frequency changes and increments at a fixed frequency that is also used for the Time Stamp Counter (TSC). This event uses a programmable general purpose performance counter.",
163aa1bd892SJin Yao        "SampleAfterValue": "2000003",
164aa1bd892SJin Yao        "UMask": "0x1"
165aa1bd892SJin Yao    },
166aa1bd892SJin Yao    {
167aa1bd892SJin Yao        "BriefDescription": "This event is deprecated.",
168*27aebf37SIan Rogers        "Deprecated": "1",
169aa1bd892SJin Yao        "EventCode": "0xcd",
170aa1bd892SJin Yao        "EventName": "CYCLES_DIV_BUSY.ANY",
171aa1bd892SJin Yao        "SampleAfterValue": "2000003"
172aa1bd892SJin Yao    },
173aa1bd892SJin Yao    {
1743c9c3157SIan Rogers        "BriefDescription": "Counts the number of cycles the integer divider is busy.",
175aa1bd892SJin Yao        "EventCode": "0xcd",
176aa1bd892SJin Yao        "EventName": "CYCLES_DIV_BUSY.IDIV",
1773c9c3157SIan Rogers        "PublicDescription": "Counts the number of cycles the integer divider is busy.  Does not imply a stall waiting for the divider.",
178aa1bd892SJin Yao        "SampleAfterValue": "200003",
179aa1bd892SJin Yao        "UMask": "0x1"
180aa1bd892SJin Yao    },
181aa1bd892SJin Yao    {
182aa1bd892SJin Yao        "BriefDescription": "Counts the total number of instructions retired. (Fixed event)",
183aa1bd892SJin Yao        "EventName": "INST_RETIRED.ANY",
184aa1bd892SJin Yao        "PEBS": "1",
185aa1bd892SJin Yao        "PublicDescription": "Counts the total number of instructions that retired. For instructions that consist of multiple uops, this event counts the retirement of the last uop of the instruction. This event continues counting during hardware interrupts, traps, and inside interrupt handlers. This event uses fixed counter 0.",
186aa1bd892SJin Yao        "SampleAfterValue": "2000003",
187aa1bd892SJin Yao        "UMask": "0x1"
188aa1bd892SJin Yao    },
189aa1bd892SJin Yao    {
190aa1bd892SJin Yao        "BriefDescription": "Counts the total number of instructions retired.",
191aa1bd892SJin Yao        "EventCode": "0xc0",
192aa1bd892SJin Yao        "EventName": "INST_RETIRED.ANY_P",
193aa1bd892SJin Yao        "PEBS": "1",
194aa1bd892SJin Yao        "PublicDescription": "Counts the total number of instructions that retired. For instructions that consist of multiple uops, this event counts the retirement of the last uop of the instruction. This event continues counting during hardware interrupts, traps, and inside interrupt handlers. This event uses a programmable general purpose performance counter.",
195aa1bd892SJin Yao        "SampleAfterValue": "2000003"
196aa1bd892SJin Yao    },
197aa1bd892SJin Yao    {
1983c9c3157SIan Rogers        "BriefDescription": "Counts the number of retired loads that are blocked because it initially appears to be store forward blocked, but subsequently is shown not to be blocked based on 4K alias check.",
1993c9c3157SIan Rogers        "EventCode": "0x03",
2003c9c3157SIan Rogers        "EventName": "LD_BLOCKS.4K_ALIAS",
2013c9c3157SIan Rogers        "PEBS": "1",
2023c9c3157SIan Rogers        "SampleAfterValue": "1000003",
2033c9c3157SIan Rogers        "UMask": "0x4"
2043c9c3157SIan Rogers    },
2053c9c3157SIan Rogers    {
2063c9c3157SIan Rogers        "BriefDescription": "Counts the number of retired loads that are blocked for any of the following reasons:  DTLB miss, address alias, store forward or data unknown (includes memory disambiguation blocks and ESP consuming load blocks).",
2073c9c3157SIan Rogers        "EventCode": "0x03",
2083c9c3157SIan Rogers        "EventName": "LD_BLOCKS.ALL",
2093c9c3157SIan Rogers        "PEBS": "1",
2103c9c3157SIan Rogers        "SampleAfterValue": "1000003",
2113c9c3157SIan Rogers        "UMask": "0x10"
2123c9c3157SIan Rogers    },
2133c9c3157SIan Rogers    {
2143c9c3157SIan Rogers        "BriefDescription": "Counts the number of retired loads that are blocked because its address exactly matches an older store whose data is not ready.",
2153c9c3157SIan Rogers        "EventCode": "0x03",
2163c9c3157SIan Rogers        "EventName": "LD_BLOCKS.DATA_UNKNOWN",
2173c9c3157SIan Rogers        "PEBS": "1",
2183c9c3157SIan Rogers        "SampleAfterValue": "1000003",
2193c9c3157SIan Rogers        "UMask": "0x1"
2203c9c3157SIan Rogers    },
2213c9c3157SIan Rogers    {
2223c9c3157SIan Rogers        "BriefDescription": "Counts the number of retired loads that are blocked because its address partially overlapped with an older store.",
2233c9c3157SIan Rogers        "EventCode": "0x03",
2243c9c3157SIan Rogers        "EventName": "LD_BLOCKS.STORE_FORWARD",
2253c9c3157SIan Rogers        "PEBS": "1",
2263c9c3157SIan Rogers        "SampleAfterValue": "1000003",
2273c9c3157SIan Rogers        "UMask": "0x2"
2283c9c3157SIan Rogers    },
2293c9c3157SIan Rogers    {
2303c9c3157SIan Rogers        "BriefDescription": "Counts the total number of machine clears for any reason including, but not limited to, memory ordering, memory disambiguation, SMC, and FP assist.",
231aa1bd892SJin Yao        "EventCode": "0xc3",
232aa1bd892SJin Yao        "EventName": "MACHINE_CLEARS.ANY",
233aa1bd892SJin Yao        "SampleAfterValue": "20003"
234aa1bd892SJin Yao    },
235aa1bd892SJin Yao    {
2363c9c3157SIan Rogers        "BriefDescription": "Counts the number of machine clears due to memory ordering in which an internal load passes an older store within the same CPU.",
2373c9c3157SIan Rogers        "EventCode": "0xc3",
2383c9c3157SIan Rogers        "EventName": "MACHINE_CLEARS.DISAMBIGUATION",
2393c9c3157SIan Rogers        "SampleAfterValue": "20003",
2403c9c3157SIan Rogers        "UMask": "0x8"
2413c9c3157SIan Rogers    },
2423c9c3157SIan Rogers    {
2433c9c3157SIan Rogers        "BriefDescription": "Counts the number of machine clears due to a page fault.  Counts both I-Side and D-Side (Loads/Stores) page faults.  A page fault occurs when either the page is not present, or an access violation occurs.",
2443c9c3157SIan Rogers        "EventCode": "0xc3",
2453c9c3157SIan Rogers        "EventName": "MACHINE_CLEARS.PAGE_FAULT",
2463c9c3157SIan Rogers        "SampleAfterValue": "20003",
2473c9c3157SIan Rogers        "UMask": "0x20"
2483c9c3157SIan Rogers    },
2493c9c3157SIan Rogers    {
2503c9c3157SIan Rogers        "BriefDescription": "Counts the number of machine clears due to program modifying data (self modifying code) within 1K of a recently fetched code page.",
2513c9c3157SIan Rogers        "EventCode": "0xc3",
2523c9c3157SIan Rogers        "EventName": "MACHINE_CLEARS.SMC",
2533c9c3157SIan Rogers        "SampleAfterValue": "20003",
2543c9c3157SIan Rogers        "UMask": "0x1"
2553c9c3157SIan Rogers    },
2563c9c3157SIan Rogers    {
2573e75e95eSIan Rogers        "BriefDescription": "Counts the total number of issue slots that were not consumed by the backend because allocation is stalled due to a mispredicted jump or a machine clear.",
2583e75e95eSIan Rogers        "EventCode": "0x73",
2593e75e95eSIan Rogers        "EventName": "TOPDOWN_BAD_SPECULATION.ALL",
2603c9c3157SIan Rogers        "PublicDescription": "Counts the total number of issue slots that were not consumed by the backend because allocation is stalled due to a mispredicted jump or a machine clear. Only issue slots wasted due to fast nukes such as memory ordering nukes are counted. Other nukes are not accounted for. Counts all issue slots blocked during this recovery window including relevant microcode flows and while uops are not yet available in the instruction queue (IQ) even if an FE_bound event occurs during this period. Also includes the issue slots that were consumed by the backend but were thrown away because they were younger than the mispredict or machine clear.",
2613e75e95eSIan Rogers        "SampleAfterValue": "1000003",
2623e75e95eSIan Rogers        "UMask": "0x6"
2633e75e95eSIan Rogers    },
2643e75e95eSIan Rogers    {
2653e75e95eSIan Rogers        "BriefDescription": "Counts the number of issue slots every cycle that were not consumed by the backend due to fast nukes such as memory ordering and memory disambiguation machine clears.",
2663e75e95eSIan Rogers        "EventCode": "0x73",
2673e75e95eSIan Rogers        "EventName": "TOPDOWN_BAD_SPECULATION.FASTNUKE",
2683e75e95eSIan Rogers        "SampleAfterValue": "1000003",
2693e75e95eSIan Rogers        "UMask": "0x2"
2703e75e95eSIan Rogers    },
2713e75e95eSIan Rogers    {
2723e75e95eSIan Rogers        "BriefDescription": "Counts the total number of issue slots that were not consumed by the backend because allocation is stalled due to a machine clear (nuke) of any kind including memory ordering and memory disambiguation.",
2733e75e95eSIan Rogers        "EventCode": "0x73",
2743e75e95eSIan Rogers        "EventName": "TOPDOWN_BAD_SPECULATION.MACHINE_CLEARS",
2753e75e95eSIan Rogers        "SampleAfterValue": "1000003",
2763e75e95eSIan Rogers        "UMask": "0x2"
2773e75e95eSIan Rogers    },
2783e75e95eSIan Rogers    {
2793e75e95eSIan Rogers        "BriefDescription": "Counts the number of issue slots every cycle that were not consumed by the backend due to branch mispredicts.",
2803e75e95eSIan Rogers        "EventCode": "0x73",
2813e75e95eSIan Rogers        "EventName": "TOPDOWN_BAD_SPECULATION.MISPREDICT",
2823e75e95eSIan Rogers        "SampleAfterValue": "1000003",
2833e75e95eSIan Rogers        "UMask": "0x4"
2843e75e95eSIan Rogers    },
2853e75e95eSIan Rogers    {
2863e75e95eSIan Rogers        "BriefDescription": "This event is deprecated. Refer to new event TOPDOWN_BAD_SPECULATION.FASTNUKE",
287*27aebf37SIan Rogers        "Deprecated": "1",
2883e75e95eSIan Rogers        "EventCode": "0x73",
2893e75e95eSIan Rogers        "EventName": "TOPDOWN_BAD_SPECULATION.MONUKE",
2903e75e95eSIan Rogers        "SampleAfterValue": "1000003",
2913e75e95eSIan Rogers        "UMask": "0x2"
2923e75e95eSIan Rogers    },
2933e75e95eSIan Rogers    {
2943e75e95eSIan Rogers        "BriefDescription": "Counts the total number of issue slots every cycle that were not consumed by the backend due to backend stalls.",
2953e75e95eSIan Rogers        "EventCode": "0x74",
2963e75e95eSIan Rogers        "EventName": "TOPDOWN_BE_BOUND.ALL",
2973e75e95eSIan Rogers        "SampleAfterValue": "1000003"
2983e75e95eSIan Rogers    },
2993e75e95eSIan Rogers    {
3003e75e95eSIan Rogers        "BriefDescription": "Counts the number of issue slots every cycle that were not consumed by the backend due to certain allocation restrictions.",
3013e75e95eSIan Rogers        "EventCode": "0x74",
3023e75e95eSIan Rogers        "EventName": "TOPDOWN_BE_BOUND.ALLOC_RESTRICTIONS",
3033e75e95eSIan Rogers        "SampleAfterValue": "1000003",
3043e75e95eSIan Rogers        "UMask": "0x1"
3053e75e95eSIan Rogers    },
3063e75e95eSIan Rogers    {
3073e75e95eSIan Rogers        "BriefDescription": "Counts the number of issue slots every cycle that were not consumed by the backend due to memory reservation stalls in which a scheduler is not able to accept uops.",
3083e75e95eSIan Rogers        "EventCode": "0x74",
3093e75e95eSIan Rogers        "EventName": "TOPDOWN_BE_BOUND.MEM_SCHEDULER",
3103e75e95eSIan Rogers        "SampleAfterValue": "1000003",
3113e75e95eSIan Rogers        "UMask": "0x2"
3123e75e95eSIan Rogers    },
3133e75e95eSIan Rogers    {
3143e75e95eSIan Rogers        "BriefDescription": "Counts the number of issue slots every cycle that were not consumed by the backend due to IEC or FPC RAT stalls, which can be due to FIQ or IEC reservation stalls in which the integer, floating point or SIMD scheduler is not able to accept uops.",
3153e75e95eSIan Rogers        "EventCode": "0x74",
3163e75e95eSIan Rogers        "EventName": "TOPDOWN_BE_BOUND.NON_MEM_SCHEDULER",
3173e75e95eSIan Rogers        "SampleAfterValue": "1000003",
3183e75e95eSIan Rogers        "UMask": "0x8"
3193e75e95eSIan Rogers    },
3203e75e95eSIan Rogers    {
3213e75e95eSIan Rogers        "BriefDescription": "Counts the number of issue slots every cycle that were not consumed by the backend due to the physical register file unable to accept an entry (marble stalls).",
3223e75e95eSIan Rogers        "EventCode": "0x74",
3233e75e95eSIan Rogers        "EventName": "TOPDOWN_BE_BOUND.REGISTER",
3243e75e95eSIan Rogers        "SampleAfterValue": "1000003",
3253e75e95eSIan Rogers        "UMask": "0x20"
3263e75e95eSIan Rogers    },
3273e75e95eSIan Rogers    {
3283e75e95eSIan Rogers        "BriefDescription": "Counts the number of issue slots every cycle that were not consumed by the backend due to the reorder buffer being full (ROB stalls).",
3293e75e95eSIan Rogers        "EventCode": "0x74",
3303e75e95eSIan Rogers        "EventName": "TOPDOWN_BE_BOUND.REORDER_BUFFER",
3313e75e95eSIan Rogers        "SampleAfterValue": "1000003",
3323e75e95eSIan Rogers        "UMask": "0x40"
3333e75e95eSIan Rogers    },
3343e75e95eSIan Rogers    {
3353e75e95eSIan Rogers        "BriefDescription": "Counts the number of issue slots every cycle that were not consumed by the backend due to scoreboards from the instruction queue (IQ), jump execution unit (JEU), or microcode sequencer (MS).",
3363e75e95eSIan Rogers        "EventCode": "0x74",
3373e75e95eSIan Rogers        "EventName": "TOPDOWN_BE_BOUND.SERIALIZATION",
3383e75e95eSIan Rogers        "SampleAfterValue": "1000003",
3393e75e95eSIan Rogers        "UMask": "0x10"
3403e75e95eSIan Rogers    },
3413e75e95eSIan Rogers    {
3423e75e95eSIan Rogers        "BriefDescription": "This event is deprecated.",
343*27aebf37SIan Rogers        "Deprecated": "1",
3443e75e95eSIan Rogers        "EventCode": "0x74",
3453e75e95eSIan Rogers        "EventName": "TOPDOWN_BE_BOUND.STORE_BUFFER",
3463e75e95eSIan Rogers        "SampleAfterValue": "1000003",
3473e75e95eSIan Rogers        "UMask": "0x4"
3483e75e95eSIan Rogers    },
3493e75e95eSIan Rogers    {
3503c9c3157SIan Rogers        "BriefDescription": "Counts the total number of issue slots every cycle that were not consumed by the backend due to frontend stalls.",
3513e75e95eSIan Rogers        "EventCode": "0x71",
3523e75e95eSIan Rogers        "EventName": "TOPDOWN_FE_BOUND.ALL",
3533e75e95eSIan Rogers        "SampleAfterValue": "1000003"
3543e75e95eSIan Rogers    },
3553e75e95eSIan Rogers    {
3563e75e95eSIan Rogers        "BriefDescription": "Counts the number of issue slots every cycle that were not delivered by the frontend due to BACLEARS.",
3573e75e95eSIan Rogers        "EventCode": "0x71",
3583e75e95eSIan Rogers        "EventName": "TOPDOWN_FE_BOUND.BRANCH_DETECT",
3593e75e95eSIan Rogers        "PublicDescription": "Counts the number of issue slots every cycle that were not delivered by the frontend due to BACLEARS, which occurs when the Branch Target Buffer (BTB) prediction or lack thereof, was corrected by a later branch predictor in the frontend. Includes BACLEARS due to all branch types including conditional and unconditional jumps, returns, and indirect branches.",
3603e75e95eSIan Rogers        "SampleAfterValue": "1000003",
3613e75e95eSIan Rogers        "UMask": "0x2"
3623e75e95eSIan Rogers    },
3633e75e95eSIan Rogers    {
3643e75e95eSIan Rogers        "BriefDescription": "Counts the number of issue slots every cycle that were not delivered by the frontend due to BTCLEARS.",
3653e75e95eSIan Rogers        "EventCode": "0x71",
3663e75e95eSIan Rogers        "EventName": "TOPDOWN_FE_BOUND.BRANCH_RESTEER",
3673e75e95eSIan Rogers        "PublicDescription": "Counts the number of issue slots every cycle that were not delivered by the frontend due to BTCLEARS, which occurs when the Branch Target Buffer (BTB) predicts a taken branch.",
3683e75e95eSIan Rogers        "SampleAfterValue": "1000003",
3693e75e95eSIan Rogers        "UMask": "0x40"
3703e75e95eSIan Rogers    },
3713e75e95eSIan Rogers    {
3723e75e95eSIan Rogers        "BriefDescription": "Counts the number of issue slots every cycle that were not delivered by the frontend due to the microcode sequencer (MS).",
3733e75e95eSIan Rogers        "EventCode": "0x71",
3743e75e95eSIan Rogers        "EventName": "TOPDOWN_FE_BOUND.CISC",
3753e75e95eSIan Rogers        "SampleAfterValue": "1000003",
3763e75e95eSIan Rogers        "UMask": "0x1"
3773e75e95eSIan Rogers    },
3783e75e95eSIan Rogers    {
3793e75e95eSIan Rogers        "BriefDescription": "Counts the number of issue slots every cycle that were not delivered by the frontend due to decode stalls.",
3803e75e95eSIan Rogers        "EventCode": "0x71",
3813e75e95eSIan Rogers        "EventName": "TOPDOWN_FE_BOUND.DECODE",
3823e75e95eSIan Rogers        "SampleAfterValue": "1000003",
3833e75e95eSIan Rogers        "UMask": "0x8"
3843e75e95eSIan Rogers    },
3853e75e95eSIan Rogers    {
3863e75e95eSIan Rogers        "BriefDescription": "Counts the number of issue slots every cycle that were not delivered by the frontend due to ITLB misses.",
3873e75e95eSIan Rogers        "EventCode": "0x71",
3883e75e95eSIan Rogers        "EventName": "TOPDOWN_FE_BOUND.ITLB",
3893e75e95eSIan Rogers        "PublicDescription": "Counts the number of issue slots every cycle that were not delivered by the frontend due to Instruction Table Lookaside Buffer (ITLB) misses.",
3903e75e95eSIan Rogers        "SampleAfterValue": "1000003",
3913e75e95eSIan Rogers        "UMask": "0x10"
3923e75e95eSIan Rogers    },
3933e75e95eSIan Rogers    {
3943e75e95eSIan Rogers        "BriefDescription": "Counts the number of issue slots every cycle that were not delivered by the frontend due to other common frontend stalls not categorized.",
3953e75e95eSIan Rogers        "EventCode": "0x71",
3963e75e95eSIan Rogers        "EventName": "TOPDOWN_FE_BOUND.OTHER",
3973e75e95eSIan Rogers        "SampleAfterValue": "1000003",
3983e75e95eSIan Rogers        "UMask": "0x80"
3993e75e95eSIan Rogers    },
4003e75e95eSIan Rogers    {
4013e75e95eSIan Rogers        "BriefDescription": "Counts the number of issue slots every cycle that were not delivered by the frontend due to wrong predecodes.",
4023e75e95eSIan Rogers        "EventCode": "0x71",
4033e75e95eSIan Rogers        "EventName": "TOPDOWN_FE_BOUND.PREDECODE",
4043e75e95eSIan Rogers        "SampleAfterValue": "1000003",
4053e75e95eSIan Rogers        "UMask": "0x4"
4063e75e95eSIan Rogers    },
4073e75e95eSIan Rogers    {
4083e75e95eSIan Rogers        "BriefDescription": "Counts the total number of consumed retirement slots.",
4093e75e95eSIan Rogers        "EventCode": "0xc2",
4103e75e95eSIan Rogers        "EventName": "TOPDOWN_RETIRING.ALL",
4113e75e95eSIan Rogers        "PEBS": "1",
4123e75e95eSIan Rogers        "SampleAfterValue": "1000003"
4133e75e95eSIan Rogers    },
4143e75e95eSIan Rogers    {
4153c9c3157SIan Rogers        "BriefDescription": "Counts the number of uops issued by the front end every cycle.",
4163c9c3157SIan Rogers        "EventCode": "0x0e",
4173c9c3157SIan Rogers        "EventName": "UOPS_ISSUED.ANY",
4183c9c3157SIan Rogers        "PublicDescription": "Counts the number of uops issued by the front end every cycle. When 4-uops are requested and only 2-uops are delivered, the event counts 2.  Uops_issued correlates to the number of ROB entries.  If uop takes 2 ROB slots it counts as 2 uops_issued.",
4193c9c3157SIan Rogers        "SampleAfterValue": "200003"
4203c9c3157SIan Rogers    },
4213c9c3157SIan Rogers    {
4223c9c3157SIan Rogers        "BriefDescription": "Counts the total number of uops retired.",
4233c9c3157SIan Rogers        "EventCode": "0xc2",
4243c9c3157SIan Rogers        "EventName": "UOPS_RETIRED.ALL",
4253c9c3157SIan Rogers        "PEBS": "1",
4263c9c3157SIan Rogers        "SampleAfterValue": "2000003"
4273c9c3157SIan Rogers    },
4283c9c3157SIan Rogers    {
4293c9c3157SIan Rogers        "BriefDescription": "Counts the number of integer divide uops retired.",
4303c9c3157SIan Rogers        "EventCode": "0xc2",
4313c9c3157SIan Rogers        "EventName": "UOPS_RETIRED.IDIV",
4323c9c3157SIan Rogers        "PEBS": "1",
4333c9c3157SIan Rogers        "SampleAfterValue": "2000003",
4343c9c3157SIan Rogers        "UMask": "0x10"
4353c9c3157SIan Rogers    },
4363c9c3157SIan Rogers    {
437aa1bd892SJin Yao        "BriefDescription": "Counts the number of uops that are from complex flows issued by the micro-sequencer (MS).",
438aa1bd892SJin Yao        "EventCode": "0xc2",
439aa1bd892SJin Yao        "EventName": "UOPS_RETIRED.MS",
440aa1bd892SJin Yao        "PEBS": "1",
441aa1bd892SJin Yao        "PublicDescription": "Counts the number of uops that are from complex flows issued by the Microcode Sequencer (MS). This includes uops from flows due to complex instructions, faults, assists, and inserted flows.",
442aa1bd892SJin Yao        "SampleAfterValue": "2000003",
443aa1bd892SJin Yao        "UMask": "0x1"
4443c9c3157SIan Rogers    },
4453c9c3157SIan Rogers    {
4463c9c3157SIan Rogers        "BriefDescription": "Counts the number of x87 uops retired, includes those in MS flows.",
4473c9c3157SIan Rogers        "EventCode": "0xc2",
4483c9c3157SIan Rogers        "EventName": "UOPS_RETIRED.X87",
4493c9c3157SIan Rogers        "PEBS": "1",
4503c9c3157SIan Rogers        "SampleAfterValue": "2000003",
4513c9c3157SIan Rogers        "UMask": "0x2"
452aa1bd892SJin Yao    }
453aa1bd892SJin Yao]
454