Skip to content

Commit

Permalink
perf stat: Use common printout function to avoid duplicated code
Browse files Browse the repository at this point in the history
Instead of every caller deciding whether to call abs or nsec printout
do it all in a single central function. No functional changes.

Signed-off-by: Andi Kleen <[email protected]>
Acked-by: Jiri Olsa <[email protected]>
Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
  • Loading branch information
Andi Kleen authored and acmel committed Nov 4, 2015
1 parent 4579ecc commit eedfcb4
Showing 1 changed file with 20 additions and 37 deletions.
57 changes: 20 additions & 37 deletions tools/perf/builtin-stat.c
Original file line number Diff line number Diff line change
Expand Up @@ -493,7 +493,6 @@ static void nsec_printout(int id, int nr, struct perf_evsel *evsel, double avg)
double msecs = avg / 1e6;
const char *fmt_v, *fmt_n;
char name[25];
int cpu = cpu_map__id_to_cpu(id);

fmt_v = csv_output ? "%.6f%s" : "%18.6f%s";
fmt_n = csv_output ? "%s" : "%-25s";
Expand All @@ -514,20 +513,13 @@ static void nsec_printout(int id, int nr, struct perf_evsel *evsel, double avg)

if (evsel->cgrp)
fprintf(output, "%s%s", csv_sep, evsel->cgrp->name);

if (csv_output || stat_config.interval)
return;

perf_stat__print_shadow_stats(output, evsel, avg, cpu,
stat_config.aggr_mode);
}

static void abs_printout(int id, int nr, struct perf_evsel *evsel, double avg)
{
FILE *output = stat_config.output;
double sc = evsel->scale;
const char *fmt;
int cpu = cpu_map__id_to_cpu(id);

if (csv_output) {
fmt = sc != 1.0 ? "%.2f%s" : "%.0f%s";
Expand All @@ -540,9 +532,6 @@ static void abs_printout(int id, int nr, struct perf_evsel *evsel, double avg)

aggr_printout(evsel, id, nr);

if (stat_config.aggr_mode == AGGR_GLOBAL)
cpu = 0;

fprintf(output, fmt, avg, csv_sep);

if (evsel->unit)
Expand All @@ -554,12 +543,24 @@ static void abs_printout(int id, int nr, struct perf_evsel *evsel, double avg)

if (evsel->cgrp)
fprintf(output, "%s%s", csv_sep, evsel->cgrp->name);
}

if (csv_output || stat_config.interval)
return;
static void printout(int id, int nr, struct perf_evsel *counter, double uval)
{
int cpu = cpu_map__id_to_cpu(id);

if (stat_config.aggr_mode == AGGR_GLOBAL)
cpu = 0;

if (nsec_counter(counter))
nsec_printout(id, nr, counter, uval);
else
abs_printout(id, nr, counter, uval);

perf_stat__print_shadow_stats(output, evsel, avg, cpu,
stat_config.aggr_mode);
if (!csv_output && !stat_config.interval)
perf_stat__print_shadow_stats(stat_config.output, counter,
uval, cpu,
stat_config.aggr_mode);
}

static void print_aggr(char *prefix)
Expand Down Expand Up @@ -615,12 +616,7 @@ static void print_aggr(char *prefix)
continue;
}
uval = val * counter->scale;

if (nsec_counter(counter))
nsec_printout(id, nr, counter, uval);
else
abs_printout(id, nr, counter, uval);

printout(id, nr, counter, uval);
if (!csv_output)
print_noise(counter, 1.0);

Expand Down Expand Up @@ -651,11 +647,7 @@ static void print_aggr_thread(struct perf_evsel *counter, char *prefix)
fprintf(output, "%s", prefix);

uval = val * counter->scale;

if (nsec_counter(counter))
nsec_printout(thread, 0, counter, uval);
else
abs_printout(thread, 0, counter, uval);
printout(thread, 0, counter, uval);

if (!csv_output)
print_noise(counter, 1.0);
Expand Down Expand Up @@ -705,11 +697,7 @@ static void print_counter_aggr(struct perf_evsel *counter, char *prefix)
}

uval = avg * counter->scale;

if (nsec_counter(counter))
nsec_printout(-1, 0, counter, uval);
else
abs_printout(-1, 0, counter, uval);
printout(-1, 0, counter, uval);

print_noise(counter, avg);

Expand Down Expand Up @@ -762,12 +750,7 @@ static void print_counter(struct perf_evsel *counter, char *prefix)
}

uval = val * counter->scale;

if (nsec_counter(counter))
nsec_printout(cpu, 0, counter, uval);
else
abs_printout(cpu, 0, counter, uval);

printout(cpu, 0, counter, uval);
if (!csv_output)
print_noise(counter, 1.0);
print_running(run, ena);
Expand Down

0 comments on commit eedfcb4

Please sign in to comment.