lkml.org 
[lkml]   [2018]   [Jun]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 31/46] perf hists: Do not allocate space for callchains for evsels without them
    Date
    From: Arnaldo Carvalho de Melo <acme@redhat.com>

    This is another case were a big switch for callchains,
    symbol_conf.use_callchain, is inconvenient, as we can have both events
    with and without callchains, no point in checking a single switch to
    decide to allocate space for callchains.

    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Wang Nan <wangnan0@huawei.com>
    Link: https://lkml.kernel.org/n/tip-62q64m7x7kqpb4g7boqc2nde@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    ---
    tools/perf/util/hist.c | 9 +++++++--
    1 file changed, 7 insertions(+), 2 deletions(-)

    diff --git a/tools/perf/util/hist.c b/tools/perf/util/hist.c
    index 34864c87cd3c..496913eeed75 100644
    --- a/tools/perf/util/hist.c
    +++ b/tools/perf/util/hist.c
    @@ -461,14 +461,19 @@ static struct hist_entry *hist_entry__new(struct hist_entry *template,
    bool sample_self)
    {
    struct hist_entry_ops *ops = template->ops;
    + struct perf_evsel *evsel = hists_to_evsel(template->hists);
    size_t callchain_size = 0;
    struct hist_entry *he;
    int err = 0;

    if (!ops)
    ops = template->ops = &default_ops;
    -
    - if (symbol_conf.use_callchain)
    + /*
    + * It is possible to have callchains for some evsels but not for others,
    + * e.g.: 'perf record -e cycles,cache-misses/max-stack=10/', so lets
    + * not waste space for that.
    + */
    + if (symbol_conf.use_callchain && evsel__has_callchain(evsel))
    callchain_size = sizeof(struct callchain_root);

    he = ops->new(callchain_size);
    --
    2.14.3
    \
     
     \ /
      Last update: 2018-06-05 20:00    [W:4.089 / U:0.032 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site