|
@@ -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;
|