summaryrefslogtreecommitdiffstats
path: root/kernel/perf_event.c
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 /kernel/perf_event.c
parentperf: Optimize __perf_event_read() (diff)
downloadlinux-3dbebf15c5d3e265f751eec72c1538a00da4be27.tar.xz
linux-3dbebf15c5d3e265f751eec72c1538a00da4be27.zip
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>
Diffstat (limited to 'kernel/perf_event.c')
-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);