perf: Add context field to perf_event
authorAvi Kivity <avi@redhat.com>
Wed, 29 Jun 2011 15:42:35 +0000 (18:42 +0300)
committerIngo Molnar <mingo@elte.hu>
Fri, 1 Jul 2011 09:06:38 +0000 (11:06 +0200)
commit4dc0da86967d5463708631d02a70cfed5b104884
treee09071a62f2457b710ff69df3be1bff39340a4c6
parent89d6c0b5bdbb1927775584dcf532d98b3efe1477
perf: Add context field to perf_event

The perf_event overflow handler does not receive any caller-derived
argument, so many callers need to resort to looking up the perf_event
in their local data structure.  This is ugly and doesn't scale if a
single callback services many perf_events.

Fix by adding a context parameter to perf_event_create_kernel_counter()
(and derived hardware breakpoints APIs) and storing it in the perf_event.
The field can be accessed from the callback as event->overflow_handler_context.
All callers are updated.

Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1309362157-6596-2-git-send-email-avi@redhat.com
Signed-off-by: Ingo Molnar <mingo@elte.hu>
12 files changed:
arch/arm/kernel/ptrace.c
arch/powerpc/kernel/ptrace.c
arch/sh/kernel/ptrace_32.c
arch/x86/kernel/kgdb.c
arch/x86/kernel/ptrace.c
drivers/oprofile/oprofile_perf.c
include/linux/hw_breakpoint.h
include/linux/perf_event.h
kernel/events/core.c
kernel/events/hw_breakpoint.c
kernel/watchdog.c
samples/hw_breakpoint/data_breakpoint.c