1c4e1dc4aSJohn Garry[
2c4e1dc4aSJohn Garry    {
3c4e1dc4aSJohn Garry        "MetricExpr": "FETCH_BUBBLE / (4 * CPU_CYCLES)",
4c4e1dc4aSJohn Garry        "PublicDescription": "Frontend bound L1 topdown metric",
5c4e1dc4aSJohn Garry        "BriefDescription": "Frontend bound L1 topdown metric",
6c4e1dc4aSJohn Garry        "MetricGroup": "TopDownL1",
7c4e1dc4aSJohn Garry        "MetricName": "frontend_bound"
8c4e1dc4aSJohn Garry    },
9c4e1dc4aSJohn Garry    {
10c4e1dc4aSJohn Garry        "MetricExpr": "(INST_SPEC - INST_RETIRED) / (4 * CPU_CYCLES)",
11c4e1dc4aSJohn Garry        "PublicDescription": "Bad Speculation L1 topdown metric",
12c4e1dc4aSJohn Garry        "BriefDescription": "Bad Speculation L1 topdown metric",
13c4e1dc4aSJohn Garry        "MetricGroup": "TopDownL1",
14c4e1dc4aSJohn Garry        "MetricName": "bad_speculation"
15c4e1dc4aSJohn Garry    },
16c4e1dc4aSJohn Garry    {
17c4e1dc4aSJohn Garry        "MetricExpr": "INST_RETIRED / (CPU_CYCLES * 4)",
18c4e1dc4aSJohn Garry        "PublicDescription": "Retiring L1 topdown metric",
19c4e1dc4aSJohn Garry        "BriefDescription": "Retiring L1 topdown metric",
20c4e1dc4aSJohn Garry        "MetricGroup": "TopDownL1",
21c4e1dc4aSJohn Garry        "MetricName": "retiring"
22c4e1dc4aSJohn Garry    },
23c4e1dc4aSJohn Garry    {
24c4e1dc4aSJohn Garry        "MetricExpr": "1 - (frontend_bound + bad_speculation + retiring)",
25c4e1dc4aSJohn Garry        "PublicDescription": "Backend Bound L1 topdown metric",
26c4e1dc4aSJohn Garry        "BriefDescription": "Backend Bound L1 topdown metric",
27c4e1dc4aSJohn Garry        "MetricGroup": "TopDownL1",
28c4e1dc4aSJohn Garry        "MetricName": "backend_bound"
29c4e1dc4aSJohn Garry    },
3003837173SJohn Garry    {
3103837173SJohn Garry        "MetricExpr": "armv8_pmuv3_0@event\\=0x201d@ / CPU_CYCLES",
3203837173SJohn Garry        "PublicDescription": "Fetch latency bound L2 topdown metric",
3303837173SJohn Garry        "BriefDescription": "Fetch latency bound L2 topdown metric",
3403837173SJohn Garry        "MetricGroup": "TopDownL2",
3503837173SJohn Garry        "MetricName": "fetch_latency_bound"
3603837173SJohn Garry    },
3703837173SJohn Garry    {
3803837173SJohn Garry        "MetricExpr": "frontend_bound - fetch_latency_bound",
3903837173SJohn Garry        "PublicDescription": "Fetch bandwidth bound L2 topdown metric",
4003837173SJohn Garry        "BriefDescription": "Fetch bandwidth bound L2 topdown metric",
4103837173SJohn Garry        "MetricGroup": "TopDownL2",
4203837173SJohn Garry        "MetricName": "fetch_bandwidth_bound"
4303837173SJohn Garry    },
4403837173SJohn Garry    {
4503837173SJohn Garry        "MetricExpr": "(bad_speculation * BR_MIS_PRED) / (BR_MIS_PRED + armv8_pmuv3_0@event\\=0x2013@)",
4603837173SJohn Garry        "PublicDescription": "Branch mispredicts L2 topdown metric",
4703837173SJohn Garry        "BriefDescription": "Branch mispredicts L2 topdown metric",
4803837173SJohn Garry        "MetricGroup": "TopDownL2",
4903837173SJohn Garry        "MetricName": "branch_mispredicts"
5003837173SJohn Garry    },
5103837173SJohn Garry    {
5203837173SJohn Garry        "MetricExpr": "bad_speculation - branch_mispredicts",
5303837173SJohn Garry        "PublicDescription": "Machine clears L2 topdown metric",
5403837173SJohn Garry        "BriefDescription": "Machine clears L2 topdown metric",
5503837173SJohn Garry        "MetricGroup": "TopDownL2",
5603837173SJohn Garry        "MetricName": "machine_clears"
5703837173SJohn Garry    },
5803837173SJohn Garry    {
5903837173SJohn Garry        "MetricExpr": "(EXE_STALL_CYCLE - (MEM_STALL_ANYLOAD + armv8_pmuv3_0@event\\=0x7005@)) / CPU_CYCLES",
6003837173SJohn Garry        "PublicDescription": "Core bound L2 topdown metric",
6103837173SJohn Garry        "BriefDescription": "Core bound L2 topdown metric",
6203837173SJohn Garry        "MetricGroup": "TopDownL2",
6303837173SJohn Garry        "MetricName": "core_bound"
6403837173SJohn Garry    },
6503837173SJohn Garry    {
6603837173SJohn Garry        "MetricExpr": "(MEM_STALL_ANYLOAD + armv8_pmuv3_0@event\\=0x7005@) / CPU_CYCLES",
6703837173SJohn Garry        "PublicDescription": "Memory bound L2 topdown metric",
6803837173SJohn Garry        "BriefDescription": "Memory bound L2 topdown metric",
6903837173SJohn Garry        "MetricGroup": "TopDownL2",
7003837173SJohn Garry        "MetricName": "memory_bound"
7103837173SJohn Garry    },
72*0cc177cfSJohn Garry    {
73*0cc177cfSJohn Garry        "MetricExpr": "(((L2I_TLB - L2I_TLB_REFILL) * 15) + (L2I_TLB_REFILL * 100)) / CPU_CYCLES",
74*0cc177cfSJohn Garry        "PublicDescription": "Idle by itlb miss L3 topdown metric",
75*0cc177cfSJohn Garry        "BriefDescription": "Idle by itlb miss L3 topdown metric",
76*0cc177cfSJohn Garry        "MetricGroup": "TopDownL3",
77*0cc177cfSJohn Garry        "MetricName": "idle_by_itlb_miss"
78*0cc177cfSJohn Garry    },
79*0cc177cfSJohn Garry    {
80*0cc177cfSJohn Garry        "MetricExpr": "(((L2I_CACHE - L2I_CACHE_REFILL) * 15) + (L2I_CACHE_REFILL * 100)) / CPU_CYCLES",
81*0cc177cfSJohn Garry        "PublicDescription": "Idle by icache miss L3 topdown metric",
82*0cc177cfSJohn Garry        "BriefDescription": "Idle by icache miss L3 topdown metric",
83*0cc177cfSJohn Garry        "MetricGroup": "TopDownL3",
84*0cc177cfSJohn Garry        "MetricName": "idle_by_icache_miss"
85*0cc177cfSJohn Garry    },
86*0cc177cfSJohn Garry    {
87*0cc177cfSJohn Garry        "MetricExpr": "(BR_MIS_PRED * 5) / CPU_CYCLES",
88*0cc177cfSJohn Garry        "PublicDescription": "BP misp flush L3 topdown metric",
89*0cc177cfSJohn Garry        "BriefDescription": "BP misp flush L3 topdown metric",
90*0cc177cfSJohn Garry        "MetricGroup": "TopDownL3",
91*0cc177cfSJohn Garry        "MetricName": "bp_misp_flush"
92*0cc177cfSJohn Garry    },
93*0cc177cfSJohn Garry    {
94*0cc177cfSJohn Garry        "MetricExpr": "(armv8_pmuv3_0@event\\=0x2013@ * 5) / CPU_CYCLES",
95*0cc177cfSJohn Garry        "PublicDescription": "OOO flush L3 topdown metric",
96*0cc177cfSJohn Garry        "BriefDescription": "OOO flush L3 topdown metric",
97*0cc177cfSJohn Garry        "MetricGroup": "TopDownL3",
98*0cc177cfSJohn Garry        "MetricName": "ooo_flush"
99*0cc177cfSJohn Garry    },
100*0cc177cfSJohn Garry    {
101*0cc177cfSJohn Garry        "MetricExpr": "(armv8_pmuv3_0@event\\=0x1001@ * 5) / CPU_CYCLES",
102*0cc177cfSJohn Garry        "PublicDescription": "Static predictor flush L3 topdown metric",
103*0cc177cfSJohn Garry        "BriefDescription": "Static predictor flush L3 topdown metric",
104*0cc177cfSJohn Garry        "MetricGroup": "TopDownL3",
105*0cc177cfSJohn Garry        "MetricName": "sp_flush"
106*0cc177cfSJohn Garry    },
107*0cc177cfSJohn Garry    {
108*0cc177cfSJohn Garry        "MetricExpr": "armv8_pmuv3_0@event\\=0x1010@ / BR_MIS_PRED",
109*0cc177cfSJohn Garry        "PublicDescription": "Indirect branch L3 topdown metric",
110*0cc177cfSJohn Garry        "BriefDescription": "Indirect branch L3 topdown metric",
111*0cc177cfSJohn Garry        "MetricGroup": "TopDownL3",
112*0cc177cfSJohn Garry        "MetricName": "indirect_branch"
113*0cc177cfSJohn Garry    },
114*0cc177cfSJohn Garry    {
115*0cc177cfSJohn Garry        "MetricExpr": "(armv8_pmuv3_0@event\\=0x1014@ + armv8_pmuv3_0@event\\=0x1018@) / BR_MIS_PRED",
116*0cc177cfSJohn Garry        "PublicDescription": "Push branch L3 topdown metric",
117*0cc177cfSJohn Garry        "BriefDescription": "Push branch L3 topdown metric",
118*0cc177cfSJohn Garry        "MetricGroup": "TopDownL3",
119*0cc177cfSJohn Garry        "MetricName": "push_branch"
120*0cc177cfSJohn Garry    },
121*0cc177cfSJohn Garry    {
122*0cc177cfSJohn Garry        "MetricExpr": "armv8_pmuv3_0@event\\=0x100c@ / BR_MIS_PRED",
123*0cc177cfSJohn Garry        "PublicDescription": "Pop branch L3 topdown metric",
124*0cc177cfSJohn Garry        "BriefDescription": "Pop branch L3 topdown metric",
125*0cc177cfSJohn Garry        "MetricGroup": "TopDownL3",
126*0cc177cfSJohn Garry        "MetricName": "pop_branch"
127*0cc177cfSJohn Garry    },
128*0cc177cfSJohn Garry    {
129*0cc177cfSJohn Garry        "MetricExpr": "(BR_MIS_PRED - armv8_pmuv3_0@event\\=0x1010@ - armv8_pmuv3_0@event\\=0x1014@ - armv8_pmuv3_0@event\\=0x1018@ - armv8_pmuv3_0@event\\=0x100c@) / BR_MIS_PRED",
130*0cc177cfSJohn Garry        "PublicDescription": "Other branch L3 topdown metric",
131*0cc177cfSJohn Garry        "BriefDescription": "Other branch L3 topdown metric",
132*0cc177cfSJohn Garry        "MetricGroup": "TopDownL3",
133*0cc177cfSJohn Garry        "MetricName": "other_branch"
134*0cc177cfSJohn Garry    },
135*0cc177cfSJohn Garry    {
136*0cc177cfSJohn Garry        "MetricExpr": "armv8_pmuv3_0@event\\=0x2012@ / armv8_pmuv3_0@event\\=0x2013@",
137*0cc177cfSJohn Garry        "PublicDescription": "Nuke flush L3 topdown metric",
138*0cc177cfSJohn Garry        "BriefDescription": "Nuke flush L3 topdown metric",
139*0cc177cfSJohn Garry        "MetricGroup": "TopDownL3",
140*0cc177cfSJohn Garry        "MetricName": "nuke_flush"
141*0cc177cfSJohn Garry    },
142*0cc177cfSJohn Garry    {
143*0cc177cfSJohn Garry        "MetricExpr": "1 - nuke_flush",
144*0cc177cfSJohn Garry        "PublicDescription": "Other flush L3 topdown metric",
145*0cc177cfSJohn Garry        "BriefDescription": "Other flush L3 topdown metric",
146*0cc177cfSJohn Garry        "MetricGroup": "TopDownL3",
147*0cc177cfSJohn Garry        "MetricName": "other_flush"
148*0cc177cfSJohn Garry    },
149*0cc177cfSJohn Garry    {
150*0cc177cfSJohn Garry        "MetricExpr": "armv8_pmuv3_0@event\\=0x2010@ / CPU_CYCLES",
151*0cc177cfSJohn Garry        "PublicDescription": "Sync stall L3 topdown metric",
152*0cc177cfSJohn Garry        "BriefDescription": "Sync stall L3 topdown metric",
153*0cc177cfSJohn Garry        "MetricGroup": "TopDownL3",
154*0cc177cfSJohn Garry        "MetricName": "sync_stall"
155*0cc177cfSJohn Garry    },
156*0cc177cfSJohn Garry    {
157*0cc177cfSJohn Garry        "MetricExpr": "armv8_pmuv3_0@event\\=0x2004@ / CPU_CYCLES",
158*0cc177cfSJohn Garry        "PublicDescription": "Rob stall L3 topdown metric",
159*0cc177cfSJohn Garry        "BriefDescription": "Rob stall L3 topdown metric",
160*0cc177cfSJohn Garry        "MetricGroup": "TopDownL3",
161*0cc177cfSJohn Garry        "MetricName": "rob_stall"
162*0cc177cfSJohn Garry    },
163*0cc177cfSJohn Garry    {
164*0cc177cfSJohn Garry        "MetricExpr": "(armv8_pmuv3_0@event\\=0x2006@ + armv8_pmuv3_0@event\\=0x2007@ + armv8_pmuv3_0@event\\=0x2008@) / CPU_CYCLES",
165*0cc177cfSJohn Garry        "PublicDescription": "Ptag stall L3 topdown metric",
166*0cc177cfSJohn Garry        "BriefDescription": "Ptag stall L3 topdown metric",
167*0cc177cfSJohn Garry        "MetricGroup": "TopDownL3",
168*0cc177cfSJohn Garry        "MetricName": "ptag_stall"
169*0cc177cfSJohn Garry    },
170*0cc177cfSJohn Garry    {
171*0cc177cfSJohn Garry        "MetricExpr": "armv8_pmuv3_0@event\\=0x201e@ / CPU_CYCLES",
172*0cc177cfSJohn Garry        "PublicDescription": "SaveOpQ stall L3 topdown metric",
173*0cc177cfSJohn Garry        "BriefDescription": "SaveOpQ stall L3 topdown metric",
174*0cc177cfSJohn Garry        "MetricGroup": "TopDownL3",
175*0cc177cfSJohn Garry        "MetricName": "saveopq_stall"
176*0cc177cfSJohn Garry    },
177*0cc177cfSJohn Garry    {
178*0cc177cfSJohn Garry        "MetricExpr": "armv8_pmuv3_0@event\\=0x2005@ / CPU_CYCLES",
179*0cc177cfSJohn Garry        "PublicDescription": "PC buffer stall L3 topdown metric",
180*0cc177cfSJohn Garry        "BriefDescription": "PC buffer stall L3 topdown metric",
181*0cc177cfSJohn Garry        "MetricGroup": "TopDownL3",
182*0cc177cfSJohn Garry        "MetricName": "pc_buffer_stall"
183*0cc177cfSJohn Garry    },
184*0cc177cfSJohn Garry    {
185*0cc177cfSJohn Garry        "MetricExpr": "armv8_pmuv3_0@event\\=0x7002@ / CPU_CYCLES",
186*0cc177cfSJohn Garry        "PublicDescription": "Divider L3 topdown metric",
187*0cc177cfSJohn Garry        "BriefDescription": "Divider L3 topdown metric",
188*0cc177cfSJohn Garry        "MetricGroup": "TopDownL3",
189*0cc177cfSJohn Garry        "MetricName": "divider"
190*0cc177cfSJohn Garry    },
191*0cc177cfSJohn Garry    {
192*0cc177cfSJohn Garry        "MetricExpr": "armv8_pmuv3_0@event\\=0x7003@ / CPU_CYCLES",
193*0cc177cfSJohn Garry        "PublicDescription": "FSU stall L3 topdown metric",
194*0cc177cfSJohn Garry        "BriefDescription": "FSU stall L3 topdown metric",
195*0cc177cfSJohn Garry        "MetricGroup": "TopDownL3",
196*0cc177cfSJohn Garry        "MetricName": "fsu_stall"
197*0cc177cfSJohn Garry    },
198*0cc177cfSJohn Garry    {
199*0cc177cfSJohn Garry        "MetricExpr": "core_bound - divider - fsu_stall",
200*0cc177cfSJohn Garry        "PublicDescription": "EXE ports util L3 topdown metric",
201*0cc177cfSJohn Garry        "BriefDescription": "EXE ports util L3 topdown metric",
202*0cc177cfSJohn Garry        "MetricGroup": "TopDownL3",
203*0cc177cfSJohn Garry        "MetricName": "exe_ports_util"
204*0cc177cfSJohn Garry    },
205*0cc177cfSJohn Garry    {
206*0cc177cfSJohn Garry        "MetricExpr": "(MEM_STALL_ANYLOAD - MEM_STALL_L1MISS) / CPU_CYCLES",
207*0cc177cfSJohn Garry        "PublicDescription": "L1 bound L3 topdown metric",
208*0cc177cfSJohn Garry        "BriefDescription": "L1 bound L3 topdown metric",
209*0cc177cfSJohn Garry        "MetricGroup": "TopDownL3",
210*0cc177cfSJohn Garry        "MetricName": "l1_bound"
211*0cc177cfSJohn Garry    },
212*0cc177cfSJohn Garry    {
213*0cc177cfSJohn Garry        "MetricExpr": "(MEM_STALL_L1MISS - MEM_STALL_L2MISS) / CPU_CYCLES",
214*0cc177cfSJohn Garry        "PublicDescription": "L2 bound L3 topdown metric",
215*0cc177cfSJohn Garry        "BriefDescription": "L2 bound L3 topdown metric",
216*0cc177cfSJohn Garry        "MetricGroup": "TopDownL3",
217*0cc177cfSJohn Garry        "MetricName": "l2_bound"
218*0cc177cfSJohn Garry    },
219*0cc177cfSJohn Garry    {
220*0cc177cfSJohn Garry        "MetricExpr": "MEM_STALL_L2MISS / CPU_CYCLES",
221*0cc177cfSJohn Garry        "PublicDescription": "Mem bound L3 topdown metric",
222*0cc177cfSJohn Garry        "BriefDescription": "Mem bound L3 topdown metric",
223*0cc177cfSJohn Garry        "MetricGroup": "TopDownL3",
224*0cc177cfSJohn Garry        "MetricName": "mem_bound"
225*0cc177cfSJohn Garry    },
226*0cc177cfSJohn Garry    {
227*0cc177cfSJohn Garry        "MetricExpr": "armv8_pmuv3_0@event\\=0x7005@ / CPU_CYCLES",
228*0cc177cfSJohn Garry        "PublicDescription": "Store bound L3 topdown metric",
229*0cc177cfSJohn Garry        "BriefDescription": "Store bound L3 topdown metric",
230*0cc177cfSJohn Garry        "MetricGroup": "TopDownL3",
231*0cc177cfSJohn Garry        "MetricName": "store_bound"
232*0cc177cfSJohn Garry    },
233c4e1dc4aSJohn Garry]
234