Commit 48648548 authored by Zhengjun Xing's avatar Zhengjun Xing Committed by Arnaldo Carvalho de Melo

perf stat: Capitalize topdown metrics' names

Capitalize topdown metrics' names to follow the intel SDM.

Before:

 # ./perf stat -a  sleep 1

 Performance counter stats for 'system wide':

        228,094.05 msec cpu-clock                        #  225.026 CPUs utilized
               842      context-switches                 #    3.691 /sec
               224      cpu-migrations                   #    0.982 /sec
                70      page-faults                      #    0.307 /sec
        23,164,105      cycles                           #    0.000 GHz
        29,403,446      instructions                     #    1.27  insn per cycle
         5,268,185      branches                         #   23.097 K/sec
            33,239      branch-misses                    #    0.63% of all branches
       136,248,990      slots                            #  597.337 K/sec
        32,976,450      topdown-retiring                 #     24.2% retiring
         4,651,918      topdown-bad-spec                 #      3.4% bad speculation
        26,148,695      topdown-fe-bound                 #     19.2% frontend bound
        72,515,776      topdown-be-bound                 #     53.2% backend bound
         6,008,540      topdown-heavy-ops                #      4.4% heavy operations       #     19.8% light operations
         3,934,049      topdown-br-mispredict            #      2.9% branch mispredict      #      0.5% machine clears
        16,655,439      topdown-fetch-lat                #     12.2% fetch latency          #      7.0% fetch bandwidth
        41,635,972      topdown-mem-bound                #     30.5% memory bound           #     22.7% Core bound

       1.013634593 seconds time elapsed

After:

 # ./perf stat -a  sleep 1

 Performance counter stats for 'system wide':

        228,081.94 msec cpu-clock                        #  225.003 CPUs utilized
               824      context-switches                 #    3.613 /sec
               224      cpu-migrations                   #    0.982 /sec
                67      page-faults                      #    0.294 /sec
        22,647,423      cycles                           #    0.000 GHz
        28,870,551      instructions                     #    1.27  insn per cycle
         5,167,099      branches                         #   22.655 K/sec
            32,383      branch-misses                    #    0.63% of all branches
       133,411,074      slots                            #  584.926 K/sec
        32,352,607      topdown-retiring                 #     24.3% Retiring
         4,456,977      topdown-bad-spec                 #      3.3% Bad Speculation
        25,626,487      topdown-fe-bound                 #     19.2% Frontend Bound
        70,955,316      topdown-be-bound                 #     53.2% Backend Bound
         5,834,844      topdown-heavy-ops                #      4.4% Heavy Operations       #     19.9% Light Operations
         3,738,781      topdown-br-mispredict            #      2.8% Branch Mispredict      #      0.5% Machine Clears
        16,286,803      topdown-fetch-lat                #     12.2% Fetch Latency          #      7.0% Fetch Bandwidth
        40,802,069      topdown-mem-bound                #     30.6% Memory Bound           #     22.6% Core Bound

       1.013683125 seconds time elapsed
Reviewed-by: default avatarKan Liang <kan.liang@linux.intel.com>
Signed-off-by: default avatarXing Zhengjun <zhengjun.xing@linux.intel.com>
Acked-by: default avatarIan Rogers <irogers@google.com>
Cc: Alexander Shishkin <alexander.shishkin@intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: https://lore.kernel.org/r/20220825015458.3252239-1-zhengjun.xing@linux.intel.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent 3126204c
...@@ -1193,7 +1193,7 @@ void perf_stat__print_shadow_stats(struct perf_stat_config *config, ...@@ -1193,7 +1193,7 @@ void perf_stat__print_shadow_stats(struct perf_stat_config *config,
&rsd); &rsd);
if (retiring > 0.7) if (retiring > 0.7)
color = PERF_COLOR_GREEN; color = PERF_COLOR_GREEN;
print_metric(config, ctxp, color, "%8.1f%%", "retiring", print_metric(config, ctxp, color, "%8.1f%%", "Retiring",
retiring * 100.); retiring * 100.);
} else if (perf_stat_evsel__is(evsel, TOPDOWN_FE_BOUND) && } else if (perf_stat_evsel__is(evsel, TOPDOWN_FE_BOUND) &&
full_td(cpu_map_idx, st, &rsd)) { full_td(cpu_map_idx, st, &rsd)) {
...@@ -1202,7 +1202,7 @@ void perf_stat__print_shadow_stats(struct perf_stat_config *config, ...@@ -1202,7 +1202,7 @@ void perf_stat__print_shadow_stats(struct perf_stat_config *config,
&rsd); &rsd);
if (fe_bound > 0.2) if (fe_bound > 0.2)
color = PERF_COLOR_RED; color = PERF_COLOR_RED;
print_metric(config, ctxp, color, "%8.1f%%", "frontend bound", print_metric(config, ctxp, color, "%8.1f%%", "Frontend Bound",
fe_bound * 100.); fe_bound * 100.);
} else if (perf_stat_evsel__is(evsel, TOPDOWN_BE_BOUND) && } else if (perf_stat_evsel__is(evsel, TOPDOWN_BE_BOUND) &&
full_td(cpu_map_idx, st, &rsd)) { full_td(cpu_map_idx, st, &rsd)) {
...@@ -1211,7 +1211,7 @@ void perf_stat__print_shadow_stats(struct perf_stat_config *config, ...@@ -1211,7 +1211,7 @@ void perf_stat__print_shadow_stats(struct perf_stat_config *config,
&rsd); &rsd);
if (be_bound > 0.2) if (be_bound > 0.2)
color = PERF_COLOR_RED; color = PERF_COLOR_RED;
print_metric(config, ctxp, color, "%8.1f%%", "backend bound", print_metric(config, ctxp, color, "%8.1f%%", "Backend Bound",
be_bound * 100.); be_bound * 100.);
} else if (perf_stat_evsel__is(evsel, TOPDOWN_BAD_SPEC) && } else if (perf_stat_evsel__is(evsel, TOPDOWN_BAD_SPEC) &&
full_td(cpu_map_idx, st, &rsd)) { full_td(cpu_map_idx, st, &rsd)) {
...@@ -1220,7 +1220,7 @@ void perf_stat__print_shadow_stats(struct perf_stat_config *config, ...@@ -1220,7 +1220,7 @@ void perf_stat__print_shadow_stats(struct perf_stat_config *config,
&rsd); &rsd);
if (bad_spec > 0.1) if (bad_spec > 0.1)
color = PERF_COLOR_RED; color = PERF_COLOR_RED;
print_metric(config, ctxp, color, "%8.1f%%", "bad speculation", print_metric(config, ctxp, color, "%8.1f%%", "Bad Speculation",
bad_spec * 100.); bad_spec * 100.);
} else if (perf_stat_evsel__is(evsel, TOPDOWN_HEAVY_OPS) && } else if (perf_stat_evsel__is(evsel, TOPDOWN_HEAVY_OPS) &&
full_td(cpu_map_idx, st, &rsd) && (config->topdown_level > 1)) { full_td(cpu_map_idx, st, &rsd) && (config->topdown_level > 1)) {
...@@ -1234,13 +1234,13 @@ void perf_stat__print_shadow_stats(struct perf_stat_config *config, ...@@ -1234,13 +1234,13 @@ void perf_stat__print_shadow_stats(struct perf_stat_config *config,
if (retiring > 0.7 && heavy_ops > 0.1) if (retiring > 0.7 && heavy_ops > 0.1)
color = PERF_COLOR_GREEN; color = PERF_COLOR_GREEN;
print_metric(config, ctxp, color, "%8.1f%%", "heavy operations", print_metric(config, ctxp, color, "%8.1f%%", "Heavy Operations",
heavy_ops * 100.); heavy_ops * 100.);
if (retiring > 0.7 && light_ops > 0.6) if (retiring > 0.7 && light_ops > 0.6)
color = PERF_COLOR_GREEN; color = PERF_COLOR_GREEN;
else else
color = NULL; color = NULL;
print_metric(config, ctxp, color, "%8.1f%%", "light operations", print_metric(config, ctxp, color, "%8.1f%%", "Light Operations",
light_ops * 100.); light_ops * 100.);
} else if (perf_stat_evsel__is(evsel, TOPDOWN_BR_MISPREDICT) && } else if (perf_stat_evsel__is(evsel, TOPDOWN_BR_MISPREDICT) &&
full_td(cpu_map_idx, st, &rsd) && (config->topdown_level > 1)) { full_td(cpu_map_idx, st, &rsd) && (config->topdown_level > 1)) {
...@@ -1254,13 +1254,13 @@ void perf_stat__print_shadow_stats(struct perf_stat_config *config, ...@@ -1254,13 +1254,13 @@ void perf_stat__print_shadow_stats(struct perf_stat_config *config,
if (bad_spec > 0.1 && br_mis > 0.05) if (bad_spec > 0.1 && br_mis > 0.05)
color = PERF_COLOR_RED; color = PERF_COLOR_RED;
print_metric(config, ctxp, color, "%8.1f%%", "branch mispredict", print_metric(config, ctxp, color, "%8.1f%%", "Branch Mispredict",
br_mis * 100.); br_mis * 100.);
if (bad_spec > 0.1 && m_clears > 0.05) if (bad_spec > 0.1 && m_clears > 0.05)
color = PERF_COLOR_RED; color = PERF_COLOR_RED;
else else
color = NULL; color = NULL;
print_metric(config, ctxp, color, "%8.1f%%", "machine clears", print_metric(config, ctxp, color, "%8.1f%%", "Machine Clears",
m_clears * 100.); m_clears * 100.);
} else if (perf_stat_evsel__is(evsel, TOPDOWN_FETCH_LAT) && } else if (perf_stat_evsel__is(evsel, TOPDOWN_FETCH_LAT) &&
full_td(cpu_map_idx, st, &rsd) && (config->topdown_level > 1)) { full_td(cpu_map_idx, st, &rsd) && (config->topdown_level > 1)) {
...@@ -1274,13 +1274,13 @@ void perf_stat__print_shadow_stats(struct perf_stat_config *config, ...@@ -1274,13 +1274,13 @@ void perf_stat__print_shadow_stats(struct perf_stat_config *config,
if (fe_bound > 0.2 && fetch_lat > 0.15) if (fe_bound > 0.2 && fetch_lat > 0.15)
color = PERF_COLOR_RED; color = PERF_COLOR_RED;
print_metric(config, ctxp, color, "%8.1f%%", "fetch latency", print_metric(config, ctxp, color, "%8.1f%%", "Fetch Latency",
fetch_lat * 100.); fetch_lat * 100.);
if (fe_bound > 0.2 && fetch_bw > 0.1) if (fe_bound > 0.2 && fetch_bw > 0.1)
color = PERF_COLOR_RED; color = PERF_COLOR_RED;
else else
color = NULL; color = NULL;
print_metric(config, ctxp, color, "%8.1f%%", "fetch bandwidth", print_metric(config, ctxp, color, "%8.1f%%", "Fetch Bandwidth",
fetch_bw * 100.); fetch_bw * 100.);
} else if (perf_stat_evsel__is(evsel, TOPDOWN_MEM_BOUND) && } else if (perf_stat_evsel__is(evsel, TOPDOWN_MEM_BOUND) &&
full_td(cpu_map_idx, st, &rsd) && (config->topdown_level > 1)) { full_td(cpu_map_idx, st, &rsd) && (config->topdown_level > 1)) {
...@@ -1294,13 +1294,13 @@ void perf_stat__print_shadow_stats(struct perf_stat_config *config, ...@@ -1294,13 +1294,13 @@ void perf_stat__print_shadow_stats(struct perf_stat_config *config,
if (be_bound > 0.2 && mem_bound > 0.2) if (be_bound > 0.2 && mem_bound > 0.2)
color = PERF_COLOR_RED; color = PERF_COLOR_RED;
print_metric(config, ctxp, color, "%8.1f%%", "memory bound", print_metric(config, ctxp, color, "%8.1f%%", "Memory Bound",
mem_bound * 100.); mem_bound * 100.);
if (be_bound > 0.2 && core_bound > 0.1) if (be_bound > 0.2 && core_bound > 0.1)
color = PERF_COLOR_RED; color = PERF_COLOR_RED;
else else
color = NULL; color = NULL;
print_metric(config, ctxp, color, "%8.1f%%", "Core bound", print_metric(config, ctxp, color, "%8.1f%%", "Core Bound",
core_bound * 100.); core_bound * 100.);
} else if (evsel->metric_expr) { } else if (evsel->metric_expr) {
generic_metric(config, evsel->metric_expr, evsel->metric_events, NULL, generic_metric(config, evsel->metric_expr, evsel->metric_events, NULL,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment