perf tools: Show progress on histogram collapsing
It can take quite amount of time so add progress bar UI to inform user. Signed-off-by: Namhyung Kim <namhyung@kernel.org> Cc: Frederic Weisbecker <fweisbec@gmail.com> Cc: Ingo Molnar <mingo@kernel.org> Cc: Jiri Olsa <jolsa@redhat.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Paul Mackerras <paulus@samba.org> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Link: http://lkml.kernel.org/r/1381468543-25334-4-git-send-email-namhyung@kernel.org [ perf_progress -> ui_progress ] Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:

committed by
Arnaldo Carvalho de Melo

parent
4d3001fdfd
commit
c1fb5651bb
@@ -496,6 +496,7 @@ static int __cmd_report(struct perf_report *rep)
|
||||
struct map *kernel_map;
|
||||
struct kmap *kernel_kmap;
|
||||
const char *help = "For a higher level overview, try: perf report --sort comm,dso";
|
||||
struct ui_progress prog;
|
||||
struct perf_data_file *file = session->file;
|
||||
|
||||
signal(SIGINT, sig_handler);
|
||||
@@ -557,6 +558,12 @@ static int __cmd_report(struct perf_report *rep)
|
||||
return 0;
|
||||
}
|
||||
|
||||
nr_samples = 0;
|
||||
list_for_each_entry(pos, &session->evlist->entries, node)
|
||||
nr_samples += pos->hists.nr_entries;
|
||||
|
||||
ui_progress__init(&prog, nr_samples, "Merging related events...");
|
||||
|
||||
nr_samples = 0;
|
||||
list_for_each_entry(pos, &session->evlist->entries, node) {
|
||||
struct hists *hists = &pos->hists;
|
||||
@@ -564,7 +571,7 @@ static int __cmd_report(struct perf_report *rep)
|
||||
if (pos->idx == 0)
|
||||
hists->symbol_filter_str = rep->symbol_filter_str;
|
||||
|
||||
hists__collapse_resort(hists);
|
||||
hists__collapse_resort(hists, &prog);
|
||||
nr_samples += hists->stats.nr_events[PERF_RECORD_SAMPLE];
|
||||
|
||||
/* Non-group events are considered as leader */
|
||||
@@ -576,6 +583,7 @@ static int __cmd_report(struct perf_report *rep)
|
||||
hists__link(leader_hists, hists);
|
||||
}
|
||||
}
|
||||
ui_progress__finish();
|
||||
|
||||
if (session_done())
|
||||
return 0;
|
||||
|
Reference in New Issue
Block a user