From 4ef3d0a231832e33e82a752986c7868dc53a494a Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Wed, 26 Jan 2011 15:38:35 +0100 Subject: [PATCH] --- yaml --- r: 232766 b: refs/heads/master c: 542e72fc90f5ed9eecb574f80f70868c7f296093 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/kernel/perf_event.c | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index 80674d35f625..1debfb26c876 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 9ffdc6c37df131f89d52001e0ef03091b158826f +refs/heads/master: 542e72fc90f5ed9eecb574f80f70868c7f296093 diff --git a/trunk/kernel/perf_event.c b/trunk/kernel/perf_event.c index 852ae8c66502..999835b6112b 100644 --- a/trunk/kernel/perf_event.c +++ b/trunk/kernel/perf_event.c @@ -1901,11 +1901,12 @@ static void __perf_event_read(void *info) return; raw_spin_lock(&ctx->lock); - update_context_time(ctx); + if (ctx->is_active) + update_context_time(ctx); update_event_times(event); + if (event->state == PERF_EVENT_STATE_ACTIVE) + event->pmu->read(event); raw_spin_unlock(&ctx->lock); - - event->pmu->read(event); } static inline u64 perf_event_count(struct perf_event *event)