summary refs log tree commit diff
diff options
context:
space:
mode:
authorPeter Zijlstra <a.p.zijlstra@chello.nl>2009-11-20 22:19:52 +0100
committerIngo Molnar <mingo@elte.hu>2009-11-21 14:11:39 +0100
commit3dbebf15c5d3e265f751eec72c1538a00da4be27 (patch)
tree66aa74aee095f2031b7c79a3762e22ca2a765174
parentf6f83785222b0ee037f7be90731f62a649292b5e (diff)
downloadlinux-3dbebf15c5d3e265f751eec72c1538a00da4be27.tar.gz
perf: Simplify __perf_event_sync_stat
Removes constraints from __perf_event_read() by leaving it with
a single callsite; this callsite had ctx->lock held, the other
one does not.

Removes some superfluous code from __perf_event_sync_stat().

Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Paul Mackerras <paulus@samba.org>
LKML-Reference: <20091120212508.918544317@chello.nl>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
-rw-r--r--kernel/perf_event.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/kernel/perf_event.c b/kernel/perf_event.c
index e66f6c400d13..af150bbcfc5b 100644
--- a/kernel/perf_event.c
+++ b/kernel/perf_event.c
@@ -1061,8 +1061,6 @@ static int context_equiv(struct perf_event_context *ctx1,
 		&& !ctx1->pin_count && !ctx2->pin_count;
 }
 
-static void __perf_event_read(void *event);
-
 static void __perf_event_sync_stat(struct perf_event *event,
 				     struct perf_event *next_event)
 {
@@ -1080,8 +1078,8 @@ static void __perf_event_sync_stat(struct perf_event *event,
 	 */
 	switch (event->state) {
 	case PERF_EVENT_STATE_ACTIVE:
-		__perf_event_read(event);
-		break;
+		event->pmu->read(event);
+		/* fall-through */
 
 	case PERF_EVENT_STATE_INACTIVE:
 		update_event_times(event);