lkml.org 
[lkml]   [2016]   [Mar]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 02/15] perf inject: Hit all DSOs for AUX data in JIT and other cases
    Date
    From: Adrian Hunter <adrian.hunter@intel.com>

    Currently, when injecting build ids, if there is AUX data then 'perf
    inject' hits all DSOs because it is not known which DSOs the trace data
    would hit.

    That needs to be done for JIT injection also, and in fact there is no
    reason to distinguish what kind of injection is being done. That is,
    any time there is AUX data and the HEADER_BUID_ID feature flag is set,
    and the AUX data is not being processed, then hit all DSOs. This patch
    does that.

    Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Stephane Eranian <eranian@google.com>
    Link: http://lkml.kernel.org/r/1457005856-6143-2-git-send-email-adrian.hunter@intel.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    ---
    tools/perf/builtin-inject.c | 12 ++++++++----
    1 file changed, 8 insertions(+), 4 deletions(-)

    diff --git a/tools/perf/builtin-inject.c b/tools/perf/builtin-inject.c
    index b38445f08c2f..c6a4f2f94ab1 100644
    --- a/tools/perf/builtin-inject.c
    +++ b/tools/perf/builtin-inject.c
    @@ -679,12 +679,16 @@ static int __cmd_inject(struct perf_inject *inject)
    ret = perf_session__process_events(session);

    if (!file_out->is_pipe) {
    - if (inject->build_ids) {
    + if (inject->build_ids)
    perf_header__set_feat(&session->header,
    HEADER_BUILD_ID);
    - if (inject->have_auxtrace)
    - dsos__hit_all(session);
    - }
    + /*
    + * Keep all buildids when there is unprocessed AUX data because
    + * it is not known which ones the AUX trace hits.
    + */
    + if (perf_header__has_feat(&session->header, HEADER_BUILD_ID) &&
    + inject->have_auxtrace && !inject->itrace_synth_opts.set)
    + dsos__hit_all(session);
    /*
    * The AUX areas have been removed and replaced with
    * synthesized hardware events, so clear the feature flag and
    --
    2.5.0
    \
     
     \ /
      Last update: 2016-03-07 21:21    [W:4.125 / U:0.756 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site