[PATCH v2 0/9] perf annotate: Fix --show-total-period and support --show-nr-samples

From: Taeung Song
Date: Thu Jul 13 2017 - 13:45:59 EST


Currently the --show-total-period option of perf-annotate
is different from perf-report's.

It has two problem like below:
(Reported by Namhyung Kim and Milian Wolff)

1) Wrong column i.e. 'Percent' (even though using --show-total-period)
2) Show number of samples, not period

So fix this option on both the annotate stdio and TUI browser.
And support --show-nr-samples into perf-anntate
so that it correpond with perf-report's.

The code is available on 'perf/ann-fix-period-v2' branch at



- Separate the first patch into respective paches for easy review (Arnaldo)
- Add a patch to introduce 'struct sym_hist_entry' (Arnaldo)
- disasm__calc_percent() could receive a pointer to a struct sym_hist_entry
instead of two pointer (Arnaldo)
- Add a sym_hist_entry into struct disasm_line_samples (Arnaldo)
- Fix a case that can't switch 'the total period view' to
'the number of samples view' on the annotate TUI browser (Arnaldo)
- Calculate the percentage with 'period', not number of samples

Taeung Song (9):
perf annotate: Introduce struct sym_hist_entry
perf annotate: Properly rename 'sum' to 'total_samples' in struct
perf annotate: Fix wrong --show-total-period option showing number of
perf annotate: Show the proper header when using --show-total-period
perf anntoate browser: Fix the toggle total period view to show
period, not number of samples
perf annotate browser: Show the proper header when using
perf annotate: Support --show-nr-samples option
perf annotate browser: Support the toggle number of samples with a 'e'
perf annotate: Use the sample period when calculating the percentage

tools/perf/builtin-annotate.c | 6 +-
tools/perf/builtin-report.c | 13 ++--
tools/perf/builtin-top.c | 6 +-
tools/perf/ui/browsers/annotate.c | 42 ++++++++++---
tools/perf/ui/gtk/annotate.c | 4 +-
tools/perf/util/annotate.c | 125 ++++++++++++++++++++++++++------------
tools/perf/util/annotate.h | 15 +++--
7 files changed, 148 insertions(+), 63 deletions(-)