lkml.org 
[lkml]   [2015]   [Sep]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 02/25] perf report: Fix sample type validation for synthesized callchains
    Date
    Processing instruction tracing data (e.g. Intel PT) can synthesize
    callchains e.g.

    $ perf record -e intel_pt//u uname
    $ perf report --stdio --itrace=ige

    However perf report's callgraph option gets extra validation, so:

    $ perf report --stdio --itrace=ige -gflat
    Error:
    Selected -g or --branch-history but no callchain data. Did
    you call 'perf record' without -g?
    # To display the perf.data header info,
    # please use --header/--header-only options.
    #

    Fix the validation to know about instruction tracing options so
    above command works.

    A side-effect of the change is that the default option to
    accumulate the callchain of child functions comes into force.
    To get the previous behaviour the --no-children option can be
    used e.g.

    $ perf report --stdio --itrace=ige -gflat --no-children

    Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
    ---
    tools/perf/builtin-report.c | 6 ++++++
    1 file changed, 6 insertions(+)

    diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c
    index e4e3f1432622..0d53b485a87b 100644
    --- a/tools/perf/builtin-report.c
    +++ b/tools/perf/builtin-report.c
    @@ -214,6 +214,12 @@ static int report__setup_sample_type(struct report *rep)
    u64 sample_type = perf_evlist__combined_sample_type(session->evlist);
    bool is_pipe = perf_data_file__is_pipe(session->file);

    + if (session->itrace_synth_opts->callchain ||
    + (!is_pipe &&
    + perf_header__has_feat(&session->header, HEADER_AUXTRACE) &&
    + !session->itrace_synth_opts->set))
    + sample_type |= PERF_SAMPLE_CALLCHAIN;
    +
    if (!is_pipe && !(sample_type & PERF_SAMPLE_CALLCHAIN)) {
    if (sort__has_parent) {
    ui__error("Selected --sort parent, but no "
    --
    1.9.1


    \
     
     \ /
      Last update: 2015-09-25 15:41    [W:4.108 / U:0.036 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site