Commit 0998d960 authored by Leo Yan's avatar Leo Yan Committed by Arnaldo Carvalho de Melo

perf c2c: Add local variables for output metrics

This patch adds several local variables:

  "cl_output": pointer for outputting single cache line metrics;
  "output_str": pointer for outputting cache line metrics;
  "sort_str": pointer to the sorting metrics.

This can improve readability for the code and it's more flexible when
later extend to different strings for the output metrics.
Signed-off-by: default avatarLeo Yan <leo.yan@linaro.org>
Acked-by: default avatarJiri Olsa <jolsa@redhat.com>
Acked-by: default avatarNamhyung Kim <namhyung@kernel.org>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Don Zickus <dzickus@redhat.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Joe Mario <jmario@redhat.com>
Cc: Joe Perches <joe@perches.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: https://lore.kernel.org/r/20210114154646.209024-7-leo.yan@linaro.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent f3d0a551
...@@ -2199,16 +2199,17 @@ static void print_pareto(FILE *out) ...@@ -2199,16 +2199,17 @@ static void print_pareto(FILE *out)
struct perf_hpp_list hpp_list; struct perf_hpp_list hpp_list;
struct rb_node *nd; struct rb_node *nd;
int ret; int ret;
const char *cl_output;
cl_output = "cl_num,"
"cl_rmt_hitm,"
"cl_lcl_hitm,"
"cl_stores_l1hit,"
"cl_stores_l1miss,"
"dcacheline";
perf_hpp_list__init(&hpp_list); perf_hpp_list__init(&hpp_list);
ret = hpp_list__parse(&hpp_list, ret = hpp_list__parse(&hpp_list, cl_output, NULL);
"cl_num,"
"cl_rmt_hitm,"
"cl_lcl_hitm,"
"cl_stores_l1hit,"
"cl_stores_l1miss,"
"dcacheline",
NULL);
if (WARN_ONCE(ret, "failed to setup sort entries\n")) if (WARN_ONCE(ret, "failed to setup sort entries\n"))
return; return;
...@@ -2752,6 +2753,7 @@ static int perf_c2c__report(int argc, const char **argv) ...@@ -2752,6 +2753,7 @@ static int perf_c2c__report(int argc, const char **argv)
OPT_END() OPT_END()
}; };
int err = 0; int err = 0;
const char *output_str, *sort_str = NULL;
argc = parse_options(argc, argv, options, report_c2c_usage, argc = parse_options(argc, argv, options, report_c2c_usage,
PARSE_OPT_STOP_AT_NON_OPTION); PARSE_OPT_STOP_AT_NON_OPTION);
...@@ -2828,24 +2830,29 @@ static int perf_c2c__report(int argc, const char **argv) ...@@ -2828,24 +2830,29 @@ static int perf_c2c__report(int argc, const char **argv)
goto out_mem2node; goto out_mem2node;
} }
c2c_hists__reinit(&c2c.hists, output_str = "cl_idx,"
"cl_idx," "dcacheline,"
"dcacheline," "dcacheline_node,"
"dcacheline_node," "dcacheline_count,"
"dcacheline_count," "percent_hitm,"
"percent_hitm," "tot_hitm,lcl_hitm,rmt_hitm,"
"tot_hitm,lcl_hitm,rmt_hitm," "tot_recs,"
"tot_recs," "tot_loads,"
"tot_loads," "tot_stores,"
"tot_stores," "stores_l1hit,stores_l1miss,"
"stores_l1hit,stores_l1miss," "ld_fbhit,ld_l1hit,ld_l2hit,"
"ld_fbhit,ld_l1hit,ld_l2hit," "ld_lclhit,lcl_hitm,"
"ld_lclhit,lcl_hitm," "ld_rmthit,rmt_hitm,"
"ld_rmthit,rmt_hitm," "dram_lcl,dram_rmt";
"dram_lcl,dram_rmt",
c2c.display == DISPLAY_TOT ? "tot_hitm" : if (c2c.display == DISPLAY_TOT)
c2c.display == DISPLAY_LCL ? "lcl_hitm" : "rmt_hitm" sort_str = "tot_hitm";
); else if (c2c.display == DISPLAY_RMT)
sort_str = "rmt_hitm";
else if (c2c.display == DISPLAY_LCL)
sort_str = "lcl_hitm";
c2c_hists__reinit(&c2c.hists, output_str, sort_str);
ui_progress__init(&prog, c2c.hists.hists.nr_entries, "Sorting..."); ui_progress__init(&prog, c2c.hists.hists.nr_entries, "Sorting...");
......
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