lkml.org 
[lkml]   [2013]   [Jan]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 04/19] perf report: Make another loop for linking group hists
    Date
    From: Namhyung Kim <namhyung.kim@lge.com>

    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/1355726345-29553-6-git-send-email-namhyung@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    ---
    tools/perf/builtin-report.c | 13 ++++++++++++-
    tools/perf/util/symbol.h | 3 ++-
    2 files changed, 14 insertions(+), 2 deletions(-)

    diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c
    index 47a864478543..fd2503a5f876 100644
    --- a/tools/perf/builtin-report.c
    +++ b/tools/perf/builtin-report.c
    @@ -416,8 +416,16 @@ static int __cmd_report(struct perf_report *rep)
    hists->symbol_filter_str = rep->symbol_filter_str;

    hists__collapse_resort(hists);
    - hists__output_resort(hists);
    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) {
    @@ -425,6 +433,9 @@ static int __cmd_report(struct perf_report *rep)
    goto out_delete;
    }

    + list_for_each_entry(pos, &session->evlist->entries, node)
    + hists__output_resort(&pos->hists);
    +
    if (use_browser > 0) {
    if (use_browser == 1) {
    perf_evlist__tui_browse_hists(session->evlist, help,
    diff --git a/tools/perf/util/symbol.h b/tools/perf/util/symbol.h
    index d97377ac2f16..b62ca37c4b77 100644
    --- a/tools/perf/util/symbol.h
    +++ b/tools/perf/util/symbol.h
    @@ -96,7 +96,8 @@ struct symbol_conf {
    initialized,
    kptr_restrict,
    annotate_asm_raw,
    - annotate_src;
    + annotate_src,
    + event_group;
    const char *vmlinux_name,
    *kallsyms_name,
    *source_prefix,
    --
    1.7.11.7


    \
     
     \ /
      Last update: 2013-01-22 11:21    [W:2.468 / U:0.040 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site