aboutsummaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorPeter Zijlstra <a.p.zijlstra@chello.nl>2009-07-21 11:34:57 -0400
committerIngo Molnar <mingo@elte.hu>2009-08-09 06:47:25 -0400
commit3a6593050fbd8bbcaed3a44d01c31d907315c86c (patch)
tree5bbaa0015ed0b0986146cc6fa9390f559bcb66b1 /kernel
parente3560336be655c6791316482fe288b119f34c427 (diff)
perf_counter, ftrace: Fix perf_counter integration
Adds possible second part to the assign argument of TP_EVENT(). TP_perf_assign( __perf_count(foo); __perf_addr(bar); ) Which, when specified make the swcounter increment with @foo instead of the usual 1, and report @bar for PERF_SAMPLE_ADDR (data address associated with the event) when this triggers a counter overflow. Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl> Acked-by: Steven Rostedt <rostedt@goodmis.org> Cc: Frederic Weisbecker <fweisbec@gmail.com> Cc: Jason Baron <jbaron@redhat.com> Cc: Paul Mackerras <paulus@samba.org> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel')
-rw-r--r--kernel/perf_counter.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/kernel/perf_counter.c b/kernel/perf_counter.c
index 673c1aaf7332..52eb4b68d34f 100644
--- a/kernel/perf_counter.c
+++ b/kernel/perf_counter.c
@@ -3703,17 +3703,17 @@ static const struct pmu perf_ops_task_clock = {
3703}; 3703};
3704 3704
3705#ifdef CONFIG_EVENT_PROFILE 3705#ifdef CONFIG_EVENT_PROFILE
3706void perf_tpcounter_event(int event_id) 3706void perf_tpcounter_event(int event_id, u64 addr, u64 count)
3707{ 3707{
3708 struct perf_sample_data data = { 3708 struct perf_sample_data data = {
3709 .regs = get_irq_regs(), 3709 .regs = get_irq_regs(),
3710 .addr = 0, 3710 .addr = addr,
3711 }; 3711 };
3712 3712
3713 if (!data.regs) 3713 if (!data.regs)
3714 data.regs = task_pt_regs(current); 3714 data.regs = task_pt_regs(current);
3715 3715
3716 do_perf_swcounter_event(PERF_TYPE_TRACEPOINT, event_id, 1, 1, &data); 3716 do_perf_swcounter_event(PERF_TYPE_TRACEPOINT, event_id, count, 1, &data);
3717} 3717}
3718EXPORT_SYMBOL_GPL(perf_tpcounter_event); 3718EXPORT_SYMBOL_GPL(perf_tpcounter_event);
3719 3719