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