lkml.org 
[lkml]   [2016]   [Feb]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[tip:perf/core] perf hists: Factor output_resort from hists__output_resort
    Commit-ID:  01441af5df438a171bce36bc3c7cfb588bc98a7a
    Gitweb: http://git.kernel.org/tip/01441af5df438a171bce36bc3c7cfb588bc98a7a
    Author: Jiri Olsa <jolsa@kernel.org>
    AuthorDate: Mon, 18 Jan 2016 10:23:59 +0100
    Committer: Arnaldo Carvalho de Melo <acme@redhat.com>
    CommitDate: Wed, 3 Feb 2016 11:13:11 -0300

    perf hists: Factor output_resort from hists__output_resort

    Currently hists__output_resort() depends on hists based on hists_evsel
    struct, but we need to be able to sort common hists as well.

    Cutting out the sorting base sorting code into output_resort
    function, so it can be reused in following patch.

    Signed-off-by: Jiri Olsa <jolsa@kernel.org>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Link: http://lkml.kernel.org/r/1453109064-1026-2-git-send-email-jolsa@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    ---
    tools/perf/util/hist.c | 23 +++++++++++++++--------
    1 file changed, 15 insertions(+), 8 deletions(-)

    diff --git a/tools/perf/util/hist.c b/tools/perf/util/hist.c
    index 098310b..7797d06 100644
    --- a/tools/perf/util/hist.c
    +++ b/tools/perf/util/hist.c
    @@ -1197,19 +1197,13 @@ static void __hists__insert_output_entry(struct rb_root *entries,
    rb_insert_color(&he->rb_node, entries);
    }

    -void hists__output_resort(struct hists *hists, struct ui_progress *prog)
    +static void output_resort(struct hists *hists, struct ui_progress *prog,
    + bool use_callchain)
    {
    struct rb_root *root;
    struct rb_node *next;
    struct hist_entry *n;
    u64 min_callchain_hits;
    - struct perf_evsel *evsel = hists_to_evsel(hists);
    - bool use_callchain;
    -
    - if (evsel && symbol_conf.use_callchain && !symbol_conf.show_ref_callgraph)
    - use_callchain = evsel->attr.sample_type & PERF_SAMPLE_CALLCHAIN;
    - else
    - use_callchain = symbol_conf.use_callchain;

    min_callchain_hits = hists__total_period(hists) * (callchain_param.min_percent / 100);

    @@ -1239,6 +1233,19 @@ void hists__output_resort(struct hists *hists, struct ui_progress *prog)
    }
    }

    +void hists__output_resort(struct hists *hists, struct ui_progress *prog)
    +{
    + struct perf_evsel *evsel = hists_to_evsel(hists);
    + bool use_callchain;
    +
    + if (evsel && symbol_conf.use_callchain && !symbol_conf.show_ref_callgraph)
    + use_callchain = evsel->attr.sample_type & PERF_SAMPLE_CALLCHAIN;
    + else
    + use_callchain = symbol_conf.use_callchain;
    +
    + output_resort(hists, prog, use_callchain);
    +}
    +
    static void hists__remove_entry_filter(struct hists *hists, struct hist_entry *h,
    enum hist_filter filter)
    {
    \
     
     \ /
      Last update: 2016-02-04 14:01    [W:5.455 / U:0.012 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site