tracing/kprobes: Avoid perf_trace_buf_*() if ->perf_events is empty
authorOleg Nesterov <oleg@redhat.com>
Thu, 20 Jun 2013 17:38:06 +0000 (19:38 +0200)
committerSteven Rostedt <rostedt@goodmis.org>
Tue, 2 Jul 2013 00:34:23 +0000 (20:34 -0400)
commit288e984e622336bab8bc3dfdf2f190816362d9a1
treef760ff7bfe1278767f1dd2e2a95d91768ab5ecee
parent6e94a780374ed31b280f939d4757e8d7858dff16
tracing/kprobes: Avoid perf_trace_buf_*() if ->perf_events is empty

perf_trace_buf_prepare() + perf_trace_buf_submit() make no sense
if this task/CPU has no active counters. Change kprobe_perf_func()
and kretprobe_perf_func() to check call->perf_events beforehand
and return if this list is empty.

For example, "perf record -e some_probe -p1". Only /sbin/init will
report, all other threads which hit the same probe will do
perf_trace_buf_prepare/perf_trace_buf_submit just to realize that
nobody wants perf_swevent_event().

Link: http://lkml.kernel.org/r/20130620173806.GA13151@redhat.com
Acked-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
kernel/trace/trace_kprobe.c