perf events: Allow per-task-per-cpu counters
authorPeter Zijlstra <a.p.zijlstra@chello.nl>
Wed, 16 Dec 2009 16:55:54 +0000 (17:55 +0100)
committerIngo Molnar <mingo@elte.hu>
Wed, 16 Dec 2009 17:30:11 +0000 (18:30 +0100)
commitf4c4176f21533e22bcc292030da72bcfa105f5b8
tree9e4376f5ff4dc3fb0f333faca94f219570df9af8
parent9b33827de63539c7c3314ddf890fb216e4acf3d8
perf events: Allow per-task-per-cpu counters

In order to allow for per-task-per-cpu counters, useful for
scalability when profiling task hierarchies, we allow installing
events with event->cpu != -1 in task contexts.

__perf_event_sched_in() already skips events where ->cpu
mis-matches the current cpu, fix up __perf_install_in_context()
and __perf_event_enable() to also respect this filter.

This does lead to vary hard to interpret enabled/running times
for such counters, but I don't see a simple solution for that.

Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: fweisbec@gmail.com
Cc: Paul Mackerras <paulus@samba.org>
LKML-Reference: <20091216165904.831451147@chello.nl>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
kernel/perf_event.c