diff options
author | Peter Zijlstra <a.p.zijlstra@chello.nl> | 2009-03-19 15:26:18 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-04-06 03:30:17 -0400 |
commit | b8e83514b64577b48bfb794fe85fcde40a9343ca (patch) | |
tree | 3fd79b41c917f56fe5a5b1f779b892110e0ec909 /arch/powerpc/kernel/perf_counter.c | |
parent | e077df4f439681e43f0db8255b2d215b342ebdc6 (diff) |
perf_counter: revamp syscall input ABI
Impact: modify ABI
The hardware/software classification in hw_event->type became a little
strained due to the addition of tracepoint tracing.
Instead split up the field and provide a type field to explicitly specify
the counter type, while using the event_id field to specify which event to
use.
Raw counters still work as before, only the raw config now goes into
raw_event.
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Steven Rostedt <rostedt@goodmis.org>
Orig-LKML-Reference: <20090319194233.836807573@chello.nl>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/powerpc/kernel/perf_counter.c')
-rw-r--r-- | arch/powerpc/kernel/perf_counter.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/powerpc/kernel/perf_counter.c b/arch/powerpc/kernel/perf_counter.c index 5008762e8bf4..26f69dc7130e 100644 --- a/arch/powerpc/kernel/perf_counter.c +++ b/arch/powerpc/kernel/perf_counter.c | |||
@@ -602,7 +602,7 @@ hw_perf_counter_init(struct perf_counter *counter) | |||
602 | return NULL; | 602 | return NULL; |
603 | if ((s64)counter->hw_event.irq_period < 0) | 603 | if ((s64)counter->hw_event.irq_period < 0) |
604 | return NULL; | 604 | return NULL; |
605 | ev = counter->hw_event.type; | 605 | ev = counter->hw_event.event_id; |
606 | if (!counter->hw_event.raw) { | 606 | if (!counter->hw_event.raw) { |
607 | if (ev >= ppmu->n_generic || | 607 | if (ev >= ppmu->n_generic || |
608 | ppmu->generic_events[ev] == 0) | 608 | ppmu->generic_events[ev] == 0) |
@@ -692,7 +692,7 @@ static void perf_handle_group(struct perf_counter *counter) | |||
692 | list_for_each_entry(sub, &leader->sibling_list, list_entry) { | 692 | list_for_each_entry(sub, &leader->sibling_list, list_entry) { |
693 | if (sub != counter) | 693 | if (sub != counter) |
694 | sub->hw_ops->read(sub); | 694 | sub->hw_ops->read(sub); |
695 | perf_store_irq_data(counter, sub->hw_event.type); | 695 | perf_store_irq_data(counter, sub->hw_event.event_config); |
696 | perf_store_irq_data(counter, atomic64_read(&sub->count)); | 696 | perf_store_irq_data(counter, atomic64_read(&sub->count)); |
697 | } | 697 | } |
698 | } | 698 | } |