Re: [PATCH] perf stat: Capitalize topdown metrics' names

From: Ian Rogers
Date: Fri Aug 26 2022 - 16:54:28 EST


On Wed, Aug 24, 2022 at 6:53 PM <zhengjun.xing@xxxxxxxxxxxxxxx> wrote:
>
> From: Zhengjun Xing <zhengjun.xing@xxxxxxxxxxxxxxx>
>
> 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
>
> Signed-off-by: Zhengjun Xing <zhengjun.xing@xxxxxxxxxxxxxxx>
> Reviewed-by: Kan Liang <kan.liang@xxxxxxxxxxxxxxx>

Acked-by: Ian Rogers <irogers@xxxxxxxxxx>

Thanks,
Ian

> ---
> tools/perf/util/stat-shadow.c | 24 ++++++++++++------------
> 1 file changed, 12 insertions(+), 12 deletions(-)
>
> diff --git a/tools/perf/util/stat-shadow.c b/tools/perf/util/stat-shadow.c
> index 979c8cb918f7..788ce5e46470 100644
> --- a/tools/perf/util/stat-shadow.c
> +++ b/tools/perf/util/stat-shadow.c
> @@ -1193,7 +1193,7 @@ void perf_stat__print_shadow_stats(struct perf_stat_config *config,
> &rsd);
> if (retiring > 0.7)
> color = PERF_COLOR_GREEN;
> - print_metric(config, ctxp, color, "%8.1f%%", "retiring",
> + print_metric(config, ctxp, color, "%8.1f%%", "Retiring",
> retiring * 100.);
> } else if (perf_stat_evsel__is(evsel, TOPDOWN_FE_BOUND) &&
> full_td(cpu_map_idx, st, &rsd)) {
> @@ -1202,7 +1202,7 @@ void perf_stat__print_shadow_stats(struct perf_stat_config *config,
> &rsd);
> if (fe_bound > 0.2)
> 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.);
> } else if (perf_stat_evsel__is(evsel, TOPDOWN_BE_BOUND) &&
> full_td(cpu_map_idx, st, &rsd)) {
> @@ -1211,7 +1211,7 @@ void perf_stat__print_shadow_stats(struct perf_stat_config *config,
> &rsd);
> if (be_bound > 0.2)
> 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.);
> } else if (perf_stat_evsel__is(evsel, TOPDOWN_BAD_SPEC) &&
> full_td(cpu_map_idx, st, &rsd)) {
> @@ -1220,7 +1220,7 @@ void perf_stat__print_shadow_stats(struct perf_stat_config *config,
> &rsd);
> if (bad_spec > 0.1)
> 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.);
> } else if (perf_stat_evsel__is(evsel, TOPDOWN_HEAVY_OPS) &&
> 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,
>
> if (retiring > 0.7 && heavy_ops > 0.1)
> 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.);
> if (retiring > 0.7 && light_ops > 0.6)
> color = PERF_COLOR_GREEN;
> else
> color = NULL;
> - print_metric(config, ctxp, color, "%8.1f%%", "light operations",
> + print_metric(config, ctxp, color, "%8.1f%%", "Light Operations",
> light_ops * 100.);
> } else if (perf_stat_evsel__is(evsel, TOPDOWN_BR_MISPREDICT) &&
> 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,
>
> if (bad_spec > 0.1 && br_mis > 0.05)
> 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.);
> if (bad_spec > 0.1 && m_clears > 0.05)
> color = PERF_COLOR_RED;
> else
> color = NULL;
> - print_metric(config, ctxp, color, "%8.1f%%", "machine clears",
> + print_metric(config, ctxp, color, "%8.1f%%", "Machine Clears",
> m_clears * 100.);
> } else if (perf_stat_evsel__is(evsel, TOPDOWN_FETCH_LAT) &&
> 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,
>
> if (fe_bound > 0.2 && fetch_lat > 0.15)
> 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.);
> if (fe_bound > 0.2 && fetch_bw > 0.1)
> color = PERF_COLOR_RED;
> else
> color = NULL;
> - print_metric(config, ctxp, color, "%8.1f%%", "fetch bandwidth",
> + print_metric(config, ctxp, color, "%8.1f%%", "Fetch Bandwidth",
> fetch_bw * 100.);
> } else if (perf_stat_evsel__is(evsel, TOPDOWN_MEM_BOUND) &&
> 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,
>
> if (be_bound > 0.2 && mem_bound > 0.2)
> 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.);
> if (be_bound > 0.2 && core_bound > 0.1)
> color = PERF_COLOR_RED;
> else
> color = NULL;
> - print_metric(config, ctxp, color, "%8.1f%%", "Core bound",
> + print_metric(config, ctxp, color, "%8.1f%%", "Core Bound",
> core_bound * 100.);
> } else if (evsel->metric_expr) {
> generic_metric(config, evsel->metric_expr, evsel->metric_events, NULL,
> --
> 2.25.1
>