perf report: Add option to show total period

Just like --show-nr-samples, to help in diagnosing problems in the
tools.

Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/n/tip-1lr7ejdjfvy2uwy2wkmatcpq@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent ef9dfe6e
...@@ -137,6 +137,8 @@ OPTIONS ...@@ -137,6 +137,8 @@ OPTIONS
-M:: -M::
--disassembler-style=:: Set disassembler style for objdump. --disassembler-style=:: Set disassembler style for objdump.
--show-total-period:: Show a column with the sum of periods.
SEE ALSO SEE ALSO
-------- --------
linkperf:perf-stat[1] linkperf:perf-stat[1]
...@@ -486,6 +486,8 @@ static const struct option options[] = { ...@@ -486,6 +486,8 @@ static const struct option options[] = {
OPT_STRING('c', "cpu", &cpu_list, "cpu", "list of cpus to profile"), OPT_STRING('c', "cpu", &cpu_list, "cpu", "list of cpus to profile"),
OPT_STRING('M', "disassembler-style", &disassembler_style, "disassembler style", OPT_STRING('M', "disassembler-style", &disassembler_style, "disassembler style",
"Specify disassembler style (e.g. -M intel for intel syntax)"), "Specify disassembler style (e.g. -M intel for intel syntax)"),
OPT_BOOLEAN(0, "show-total-period", &symbol_conf.show_total_period,
"Show a column with the sum of periods"),
OPT_END() OPT_END()
}; };
......
...@@ -664,6 +664,13 @@ int hist_entry__snprintf(struct hist_entry *self, char *s, size_t size, ...@@ -664,6 +664,13 @@ int hist_entry__snprintf(struct hist_entry *self, char *s, size_t size,
ret += snprintf(s + ret, size - ret, "%11" PRIu64, nr_events); ret += snprintf(s + ret, size - ret, "%11" PRIu64, nr_events);
} }
if (symbol_conf.show_total_period) {
if (sep)
ret += snprintf(s + ret, size - ret, "%c%" PRIu64, *sep, period);
else
ret += snprintf(s + ret, size - ret, " %12" PRIu64, period);
}
if (pair_hists) { if (pair_hists) {
char bf[32]; char bf[32];
double old_percent = 0, new_percent = 0, diff; double old_percent = 0, new_percent = 0, diff;
...@@ -770,6 +777,13 @@ size_t hists__fprintf(struct hists *hists, struct hists *pair, ...@@ -770,6 +777,13 @@ size_t hists__fprintf(struct hists *hists, struct hists *pair,
fputs(" Samples ", fp); fputs(" Samples ", fp);
} }
if (symbol_conf.show_total_period) {
if (sep)
ret += fprintf(fp, "%cPeriod", *sep);
else
ret += fprintf(fp, " Period ");
}
if (symbol_conf.show_cpu_utilization) { if (symbol_conf.show_cpu_utilization) {
if (sep) { if (sep) {
ret += fprintf(fp, "%csys", *sep); ret += fprintf(fp, "%csys", *sep);
...@@ -834,6 +848,8 @@ size_t hists__fprintf(struct hists *hists, struct hists *pair, ...@@ -834,6 +848,8 @@ size_t hists__fprintf(struct hists *hists, struct hists *pair,
fprintf(fp, "# ........"); fprintf(fp, "# ........");
if (symbol_conf.show_nr_samples) if (symbol_conf.show_nr_samples)
fprintf(fp, " .........."); fprintf(fp, " ..........");
if (symbol_conf.show_total_period)
fprintf(fp, " ............");
if (pair) { if (pair) {
fprintf(fp, " .........."); fprintf(fp, " ..........");
if (show_displacement) if (show_displacement)
...@@ -917,6 +933,9 @@ unsigned int hists__sort_list_width(struct hists *hists) ...@@ -917,6 +933,9 @@ unsigned int hists__sort_list_width(struct hists *hists)
if (symbol_conf.show_nr_samples) if (symbol_conf.show_nr_samples)
ret += 11; ret += 11;
if (symbol_conf.show_total_period)
ret += 13;
list_for_each_entry(se, &hist_entry__sort_list, list) list_for_each_entry(se, &hist_entry__sort_list, list)
if (!se->elide) if (!se->elide)
ret += 2 + hists__col_len(hists, se->se_width_idx); ret += 2 + hists__col_len(hists, se->se_width_idx);
......
...@@ -72,6 +72,7 @@ struct symbol_conf { ...@@ -72,6 +72,7 @@ struct symbol_conf {
use_modules, use_modules,
sort_by_name, sort_by_name,
show_nr_samples, show_nr_samples,
show_total_period,
use_callchain, use_callchain,
exclude_other, exclude_other,
show_cpu_utilization, show_cpu_utilization,
......
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