[patch 8/9] perf: session: Split out user event processing

From: Thomas Gleixner
Date: Tue Dec 07 2010 - 07:49:59 EST


Simplify further.

Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
---
tools/perf/util/session.c | 42 ++++++++++++++++++++++++------------------
1 file changed, 24 insertions(+), 18 deletions(-)

Index: linux-2.6-tip/tools/perf/util/session.c
===================================================================
--- linux-2.6-tip.orig/tools/perf/util/session.c
+++ linux-2.6-tip/tools/perf/util/session.c
@@ -748,24 +748,10 @@ static int preprocess_sample_record(stru
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 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(s
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 process_user_event(session, event, ops, file_offset);

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


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/