lkml.org 
[lkml]   [2016]   [Feb]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[tip:perf/core] perf callchain: Pass parent_samples to __callchain__fprintf_graph()
    Commit-ID:  54d27b3119e2eecbb3dfbf821db90fab25f6c523
    Gitweb: http://git.kernel.org/tip/54d27b3119e2eecbb3dfbf821db90fab25f6c523
    Author: Namhyung Kim <namhyung@kernel.org>
    AuthorDate: Thu, 28 Jan 2016 00:40:52 +0900
    Committer: Arnaldo Carvalho de Melo <acme@redhat.com>
    CommitDate: Mon, 1 Feb 2016 17:39:52 -0300

    perf callchain: Pass parent_samples to __callchain__fprintf_graph()

    Pass hist entry's period to graph callchain print function. This info
    is needed by later patch to determine whether it can omit percentage of
    top-level node or not.

    No functional change intended.

    Signed-off-by: Namhyung Kim <namhyung@kernel.org>
    Cc: Andi Kleen <andi@firstfloor.org>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Frederic Weisbecker <fweisbec@gmail.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Wang Nan <wangnan0@huawei.com>
    Link: http://lkml.kernel.org/r/1453909257-26015-6-git-send-email-namhyung@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    ---
    tools/perf/ui/stdio/hist.c | 19 +++++++++++++------
    1 file changed, 13 insertions(+), 6 deletions(-)

    diff --git a/tools/perf/ui/stdio/hist.c b/tools/perf/ui/stdio/hist.c
    index 8e25f7d..96188ea 100644
    --- a/tools/perf/ui/stdio/hist.c
    +++ b/tools/perf/ui/stdio/hist.c
    @@ -166,7 +166,8 @@ static size_t __callchain__fprintf_graph(FILE *fp, struct rb_root *root,
    }

    static size_t callchain__fprintf_graph(FILE *fp, struct rb_root *root,
    - u64 total_samples, int left_margin)
    + u64 total_samples, u64 parent_samples,
    + int left_margin)
    {
    struct callchain_node *cnode;
    struct callchain_list *chain;
    @@ -213,6 +214,9 @@ static size_t callchain__fprintf_graph(FILE *fp, struct rb_root *root,
    root = &cnode->rb_root;
    }

    + if (callchain_param.mode == CHAIN_GRAPH_REL)
    + total_samples = parent_samples;
    +
    ret += __callchain__fprintf_graph(fp, root, total_samples,
    1, 1, left_margin);
    ret += fprintf(fp, "\n");
    @@ -323,16 +327,19 @@ static size_t hist_entry_callchain__fprintf(struct hist_entry *he,
    u64 total_samples, int left_margin,
    FILE *fp)
    {
    + u64 parent_samples = he->stat.period;
    +
    + if (symbol_conf.cumulate_callchain)
    + parent_samples = he->stat_acc->period;
    +
    switch (callchain_param.mode) {
    case CHAIN_GRAPH_REL:
    - return callchain__fprintf_graph(fp, &he->sorted_chain,
    - symbol_conf.cumulate_callchain ?
    - he->stat_acc->period : he->stat.period,
    - left_margin);
    + return callchain__fprintf_graph(fp, &he->sorted_chain, total_samples,
    + parent_samples, left_margin);
    break;
    case CHAIN_GRAPH_ABS:
    return callchain__fprintf_graph(fp, &he->sorted_chain, total_samples,
    - left_margin);
    + parent_samples, left_margin);
    break;
    case CHAIN_FLAT:
    return callchain__fprintf_flat(fp, &he->sorted_chain, total_samples);
    \
     
     \ /
      Last update: 2016-02-03 11:41    [W:4.725 / U:0.160 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site