From 03483837dac4052fb0c4196e2ced48bc3b08a1aa Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Fri, 21 May 2010 14:27:58 +0200 Subject: [PATCH] --- yaml --- r: 205251 b: refs/heads/master c: a6e6dea68c18f705957573ee5596097c7e82d0e5 h: refs/heads/master i: 205249: 3feee527285fa5f7c493703af446382e84c62130 205247: 146a675d26d350cc388465740a2fea314c403631 v: v3 --- [refs] | 2 +- trunk/include/linux/perf_event.h | 1 + trunk/kernel/perf_event.c | 4 ++-- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 6aebfeb58e8a..e7303ee96749 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: b5e58793c7a8ec35e72ea6ec6c353499dd189809 +refs/heads/master: a6e6dea68c18f705957573ee5596097c7e82d0e5 diff --git a/trunk/include/linux/perf_event.h b/trunk/include/linux/perf_event.h index 441992a9775c..f34dab9b275e 100644 --- a/trunk/include/linux/perf_event.h +++ b/trunk/include/linux/perf_event.h @@ -671,6 +671,7 @@ struct perf_event { enum perf_event_active_state state; unsigned int attach_state; atomic64_t count; + atomic64_t child_count; /* * These are the total time in nanoseconds that the event diff --git a/trunk/kernel/perf_event.c b/trunk/kernel/perf_event.c index ab4c0ffc271c..a395fda2d94c 100644 --- a/trunk/kernel/perf_event.c +++ b/trunk/kernel/perf_event.c @@ -1738,7 +1738,7 @@ static void __perf_event_read(void *info) static inline u64 perf_event_count(struct perf_event *event) { - return atomic64_read(&event->count); + return atomic64_read(&event->count) + atomic64_read(&event->child_count); } static u64 perf_event_read(struct perf_event *event) @@ -5379,7 +5379,7 @@ static void sync_child_event(struct perf_event *child_event, /* * Add back the child's count to the parent's count: */ - atomic64_add(child_val, &parent_event->count); + atomic64_add(child_val, &parent_event->child_count); atomic64_add(child_event->total_time_enabled, &parent_event->child_total_time_enabled); atomic64_add(child_event->total_time_running,