mirror of https://gitee.com/openkylin/linux.git
perf report: Make another loop for linking group hists
Now the event grouping viewing requires linking all member hists in a group to the leader's. Thus hists__output_resort should be called after linking all events in evlist. Introduce symbol_conf.event_group flag to determine whether the feature is enabled or not. Signed-off-by: Namhyung Kim <namhyung@kernel.org> Acked-by: Jiri Olsa <jolsa@redhat.com> Cc: Ingo Molnar <mingo@kernel.org> Cc: Jiri Olsa <jolsa@redhat.com> Cc: Paul Mackerras <paulus@samba.org> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Stephane Eranian <eranian@google.com> Link: http://lkml.kernel.org/r/1358845787-1350-5-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
a8bb559bd4
commit
6e1f601a10
|
@ -416,8 +416,16 @@ static int __cmd_report(struct perf_report *rep)
|
||||||
hists->symbol_filter_str = rep->symbol_filter_str;
|
hists->symbol_filter_str = rep->symbol_filter_str;
|
||||||
|
|
||||||
hists__collapse_resort(hists);
|
hists__collapse_resort(hists);
|
||||||
hists__output_resort(hists);
|
|
||||||
nr_samples += hists->stats.nr_events[PERF_RECORD_SAMPLE];
|
nr_samples += hists->stats.nr_events[PERF_RECORD_SAMPLE];
|
||||||
|
|
||||||
|
/* Non-group events are considered as leader */
|
||||||
|
if (symbol_conf.event_group &&
|
||||||
|
!perf_evsel__is_group_leader(pos)) {
|
||||||
|
struct hists *leader_hists = &pos->leader->hists;
|
||||||
|
|
||||||
|
hists__match(leader_hists, hists);
|
||||||
|
hists__link(leader_hists, hists);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nr_samples == 0) {
|
if (nr_samples == 0) {
|
||||||
|
@ -425,6 +433,9 @@ static int __cmd_report(struct perf_report *rep)
|
||||||
goto out_delete;
|
goto out_delete;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
list_for_each_entry(pos, &session->evlist->entries, node)
|
||||||
|
hists__output_resort(&pos->hists);
|
||||||
|
|
||||||
if (use_browser > 0) {
|
if (use_browser > 0) {
|
||||||
if (use_browser == 1) {
|
if (use_browser == 1) {
|
||||||
perf_evlist__tui_browse_hists(session->evlist, help,
|
perf_evlist__tui_browse_hists(session->evlist, help,
|
||||||
|
|
|
@ -96,7 +96,8 @@ struct symbol_conf {
|
||||||
initialized,
|
initialized,
|
||||||
kptr_restrict,
|
kptr_restrict,
|
||||||
annotate_asm_raw,
|
annotate_asm_raw,
|
||||||
annotate_src;
|
annotate_src,
|
||||||
|
event_group;
|
||||||
const char *vmlinux_name,
|
const char *vmlinux_name,
|
||||||
*kallsyms_name,
|
*kallsyms_name,
|
||||||
*source_prefix,
|
*source_prefix,
|
||||||
|
|
Loading…
Reference in New Issue