perf: Convert perf_event to local_t

Since now all modification to event->count (and ->prev_count
and ->period_left) are local to a cpu, change then to local64_t so we
avoid the LOCK'ed ops.

Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
LKML-Reference: <new-submission>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
Peter Zijlstra
2010-05-21 14:43:08 +02:00
committed by Ingo Molnar
parent a6e6dea68c
commit e78505958c
7 changed files with 72 additions and 71 deletions

View File

@@ -487,6 +487,7 @@ struct perf_guest_info_callbacks {
#include <linux/cpu.h>
#include <asm/atomic.h>
#include <asm/local.h>
#include <asm/local64.h>
#define PERF_MAX_STACK_DEPTH 255
@@ -536,10 +537,10 @@ struct hw_perf_event {
struct arch_hw_breakpoint info;
#endif
};
atomic64_t prev_count;
local64_t prev_count;
u64 sample_period;
u64 last_period;
atomic64_t period_left;
local64_t period_left;
u64 interrupts;
u64 freq_time_stamp;
@@ -670,7 +671,7 @@ struct perf_event {
enum perf_event_active_state state;
unsigned int attach_state;
atomic64_t count;
local64_t count;
atomic64_t child_count;
/*