lkml.org 
[lkml]   [2010]   [Dec]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 09/10] perf session: Split out user event processing
    Date
    From: Thomas Gleixner <tglx@linutronix.de>

    Simplify further.

    Cc: Frederic Weisbecker <fweisbec@gmail.com>
    Cc: Ian Munsie <imunsie@au1.ibm.com>
    Cc: Ingo Molnar <mingo@elte.hu>
    Cc: Peter Zijlstra <peterz@infradead.org>
    LKML-Reference: <20101207124551.110956235@linutronix.de>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    ---
    tools/perf/util/session.c | 42 ++++++++++++++++++++++++------------------
    1 files changed, 24 insertions(+), 18 deletions(-)

    diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c
    index a765b27..69760cd 100644
    --- a/tools/perf/util/session.c
    +++ b/tools/perf/util/session.c
    @@ -748,24 +748,10 @@ static int perf_session__preprocess_sample(struct perf_session *session,
    return 0;
    }

    -static int perf_session__process_event(struct perf_session *session,
    - event_t *event,
    - struct perf_event_ops *ops,
    - u64 file_offset)
    +static int perf_session__process_user_event(struct perf_session *session, event_t *event,
    + struct perf_event_ops *ops, u64 file_offset)
    {
    - struct sample_data sample;
    - int ret;
    -
    - if (session->header.needs_swap && event__swap_ops[event->header.type])
    - event__swap_ops[event->header.type](event);
    -
    - if (event->header.type >= PERF_RECORD_HEADER_MAX)
    - return -EINVAL;
    -
    - hists__inc_nr_events(&session->hists, event->header.type);
    -
    - if (event->header.type >= PERF_RECORD_USER_TYPE_START)
    - dump_event(session, event, file_offset, NULL);
    + dump_event(session, event, file_offset, NULL);

    /* These events are processed right away */
    switch (event->header.type) {
    @@ -782,8 +768,28 @@ static int perf_session__process_event(struct perf_session *session,
    case PERF_RECORD_FINISHED_ROUND:
    return ops->finished_round(event, session, ops);
    default:
    - break;
    + return -EINVAL;
    }
    +}
    +
    +static int perf_session__process_event(struct perf_session *session,
    + event_t *event,
    + struct perf_event_ops *ops,
    + u64 file_offset)
    +{
    + struct sample_data sample;
    + int ret;
    +
    + if (session->header.needs_swap && event__swap_ops[event->header.type])
    + event__swap_ops[event->header.type](event);
    +
    + if (event->header.type >= PERF_RECORD_HEADER_MAX)
    + return -EINVAL;
    +
    + hists__inc_nr_events(&session->hists, event->header.type);
    +
    + if (event->header.type >= PERF_RECORD_USER_TYPE_START)
    + return perf_session__process_user_event(session, event, ops, file_offset);

    /*
    * For all kernel events we get the sample data
    --
    1.6.2.5


    \
     
     \ /
      Last update: 2010-12-09 19:17    [W:0.022 / U:32.244 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site