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    },
30*03837173SJohn Garry    {
31*03837173SJohn Garry        "MetricExpr": "armv8_pmuv3_0@event\\=0x201d@ / CPU_CYCLES",
32*03837173SJohn Garry        "PublicDescription": "Fetch latency bound L2 topdown metric",
33*03837173SJohn Garry        "BriefDescription": "Fetch latency bound L2 topdown metric",
34*03837173SJohn Garry        "MetricGroup": "TopDownL2",
35*03837173SJohn Garry        "MetricName": "fetch_latency_bound"
36*03837173SJohn Garry    },
37*03837173SJohn Garry    {
38*03837173SJohn Garry        "MetricExpr": "frontend_bound - fetch_latency_bound",
39*03837173SJohn Garry        "PublicDescription": "Fetch bandwidth bound L2 topdown metric",
40*03837173SJohn Garry        "BriefDescription": "Fetch bandwidth bound L2 topdown metric",
41*03837173SJohn Garry        "MetricGroup": "TopDownL2",
42*03837173SJohn Garry        "MetricName": "fetch_bandwidth_bound"
43*03837173SJohn Garry    },
44*03837173SJohn Garry    {
45*03837173SJohn Garry        "MetricExpr": "(bad_speculation * BR_MIS_PRED) / (BR_MIS_PRED + armv8_pmuv3_0@event\\=0x2013@)",
46*03837173SJohn Garry        "PublicDescription": "Branch mispredicts L2 topdown metric",
47*03837173SJohn Garry        "BriefDescription": "Branch mispredicts L2 topdown metric",
48*03837173SJohn Garry        "MetricGroup": "TopDownL2",
49*03837173SJohn Garry        "MetricName": "branch_mispredicts"
50*03837173SJohn Garry    },
51*03837173SJohn Garry    {
52*03837173SJohn Garry        "MetricExpr": "bad_speculation - branch_mispredicts",
53*03837173SJohn Garry        "PublicDescription": "Machine clears L2 topdown metric",
54*03837173SJohn Garry        "BriefDescription": "Machine clears L2 topdown metric",
55*03837173SJohn Garry        "MetricGroup": "TopDownL2",
56*03837173SJohn Garry        "MetricName": "machine_clears"
57*03837173SJohn Garry    },
58*03837173SJohn Garry    {
59*03837173SJohn Garry        "MetricExpr": "(EXE_STALL_CYCLE - (MEM_STALL_ANYLOAD + armv8_pmuv3_0@event\\=0x7005@)) / CPU_CYCLES",
60*03837173SJohn Garry        "PublicDescription": "Core bound L2 topdown metric",
61*03837173SJohn Garry        "BriefDescription": "Core bound L2 topdown metric",
62*03837173SJohn Garry        "MetricGroup": "TopDownL2",
63*03837173SJohn Garry        "MetricName": "core_bound"
64*03837173SJohn Garry    },
65*03837173SJohn Garry    {
66*03837173SJohn Garry        "MetricExpr": "(MEM_STALL_ANYLOAD + armv8_pmuv3_0@event\\=0x7005@) / CPU_CYCLES",
67*03837173SJohn Garry        "PublicDescription": "Memory bound L2 topdown metric",
68*03837173SJohn Garry        "BriefDescription": "Memory bound L2 topdown metric",
69*03837173SJohn Garry        "MetricGroup": "TopDownL2",
70*03837173SJohn Garry        "MetricName": "memory_bound"
71*03837173SJohn Garry    },
72c4e1dc4aSJohn Garry]
73