lkml.org 
[lkml]   [2015]   [Jul]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 17/18] perf script: Don't assume evsel position of tracking events
    Date
    From: Adrian Hunter <adrian.hunter@intel.com>

    The tracking event does not have to be the first event so replace
    perf_evlist__first() with perf_evlist__id2evsel() which uses the event
    ID to find the correct evsel.

    Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
    Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Tested-by: Jiri Olsa <jolsa@redhat.com>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Mathieu Poirier <mathieu.poirier@linaro.org>
    Cc: Pawel Moll <pawel.moll@arm.com>
    Cc: Stephane Eranian <eranian@google.com>
    Link: http://lkml.kernel.org/r/1437471846-26995-5-git-send-email-adrian.hunter@intel.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    ---
    tools/perf/builtin-script.c | 10 +++++-----
    1 file changed, 5 insertions(+), 5 deletions(-)

    diff --git a/tools/perf/builtin-script.c b/tools/perf/builtin-script.c
    index 2777c6444bc3..8a8e2ead6382 100644
    --- a/tools/perf/builtin-script.c
    +++ b/tools/perf/builtin-script.c
    @@ -661,7 +661,7 @@ static int process_comm_event(struct perf_tool *tool,
    struct thread *thread;
    struct perf_script *script = container_of(tool, struct perf_script, tool);
    struct perf_session *session = script->session;
    - struct perf_evsel *evsel = perf_evlist__first(session->evlist);
    + struct perf_evsel *evsel = perf_evlist__id2evsel(session->evlist, sample->id);
    int ret = -1;

    thread = machine__findnew_thread(machine, event->comm.pid, event->comm.tid);
    @@ -695,7 +695,7 @@ static int process_fork_event(struct perf_tool *tool,
    struct thread *thread;
    struct perf_script *script = container_of(tool, struct perf_script, tool);
    struct perf_session *session = script->session;
    - struct perf_evsel *evsel = perf_evlist__first(session->evlist);
    + struct perf_evsel *evsel = perf_evlist__id2evsel(session->evlist, sample->id);

    if (perf_event__process_fork(tool, event, sample, machine) < 0)
    return -1;
    @@ -727,7 +727,7 @@ static int process_exit_event(struct perf_tool *tool,
    struct thread *thread;
    struct perf_script *script = container_of(tool, struct perf_script, tool);
    struct perf_session *session = script->session;
    - struct perf_evsel *evsel = perf_evlist__first(session->evlist);
    + struct perf_evsel *evsel = perf_evlist__id2evsel(session->evlist, sample->id);

    thread = machine__findnew_thread(machine, event->fork.pid, event->fork.tid);
    if (thread == NULL) {
    @@ -759,7 +759,7 @@ static int process_mmap_event(struct perf_tool *tool,
    struct thread *thread;
    struct perf_script *script = container_of(tool, struct perf_script, tool);
    struct perf_session *session = script->session;
    - struct perf_evsel *evsel = perf_evlist__first(session->evlist);
    + struct perf_evsel *evsel = perf_evlist__id2evsel(session->evlist, sample->id);

    if (perf_event__process_mmap(tool, event, sample, machine) < 0)
    return -1;
    @@ -790,7 +790,7 @@ static int process_mmap2_event(struct perf_tool *tool,
    struct thread *thread;
    struct perf_script *script = container_of(tool, struct perf_script, tool);
    struct perf_session *session = script->session;
    - struct perf_evsel *evsel = perf_evlist__first(session->evlist);
    + struct perf_evsel *evsel = perf_evlist__id2evsel(session->evlist, sample->id);

    if (perf_event__process_mmap2(tool, event, sample, machine) < 0)
    return -1;
    --
    2.1.0


    \
     
     \ /
      Last update: 2015-07-24 04:21    [W:4.175 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site