Re: [PATCH][RFC] tracing: Use class->reg() for all registering of events

Steven Rostedt
2010-06-08T19:10:17Z

On Tue, 2010-06-08 at 23:05 +0530, Srikar Dronamraju wrote:
> > On Tue, 2010-06-08 at 11:33 -0400, Steven Rostedt wrote:

> I tested the patch and it fixed the regression where
> perf record -e probe:do_fork -aR sleep 1 would fail.
>

Thanks! Unfortunately the patch does two things, one is to fix this
regression, the other is a clean up. Linus is currently only wanting
fixes now and may not accept the clean up part of this patch. Can you
test the patch below. It only addresses the regression.

Thanks,

-- Steve

diff --git a/kernel/trace/trace_event_perf.c b/kernel/trace/trace_event_perf.c
index e6f6588..8a2b73f 100644
--- a/kernel/trace/trace_event_perf.c
+++ b/kernel/trace/trace_event_perf.c
@@ -96,7 +96,9 @@ int perf_trace_init(struct perf_event *p_event)
mutex_lock(&event_mutex);
list_for_each_entry(tp_event, &ftrace_events, list) {
if (tp_event->event.type == event_id &&
- tp_event->class && tp_event->class->perf_probe &&
+ tp_event->class &&
+ (tp_event->class->perf_probe ||
+ tp_event->class->reg) &&
try_module_get(tp_event->mod)) {
ret = perf_trace_event_init(tp_event, p_event);
break;