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>
This commit is contained in:

committed by
Ingo Molnar

parent
e077df4f43
commit
b8e83514b6
@@ -602,7 +602,7 @@ hw_perf_counter_init(struct perf_counter *counter)
|
||||
return NULL;
|
||||
if ((s64)counter->hw_event.irq_period < 0)
|
||||
return NULL;
|
||||
ev = counter->hw_event.type;
|
||||
ev = counter->hw_event.event_id;
|
||||
if (!counter->hw_event.raw) {
|
||||
if (ev >= ppmu->n_generic ||
|
||||
ppmu->generic_events[ev] == 0)
|
||||
@@ -692,7 +692,7 @@ static void perf_handle_group(struct perf_counter *counter)
|
||||
list_for_each_entry(sub, &leader->sibling_list, list_entry) {
|
||||
if (sub != counter)
|
||||
sub->hw_ops->read(sub);
|
||||
perf_store_irq_data(counter, sub->hw_event.type);
|
||||
perf_store_irq_data(counter, sub->hw_event.event_config);
|
||||
perf_store_irq_data(counter, atomic64_read(&sub->count));
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user