I just send two patches out, without trace on load patch for
now(explained at below).

On Mon, 2010-11-08 at 00:03 +0800, Chris Wilson wrote:
> Oh my, this turns out to be quite hacky indeed...
> 
> if (i915_trace_on_load) {
>       const struct ftrace_event_call enable_list[] = {
> #define EVENT(name) event_call_##name
>               &EVENT(i915_reg),
>               NULL,
>       }, *call = enable_list;
>       do {
>               if ((*call)->class->reg(*call, TRACE_REG_REGISTER) == 0)
>                       (*call)->flags |= TRACE_EVENT_FL_ENABLED;
>               else
>                       DRM_DEBUG("failed to enable tracepoint '%s'\n",
>                               (*call)->name);
>       } while (*++call);
> }
> 
> [Not even compile tested! ;)]

Sorry, it can't compile for not being able to find the event_call_*. 

While, that doesn't matter. As you may know, I send a patch to upstream 
to export trace_set_clr_event function. Then we can simply add the 
following line in i915_init():

trace_set_clr_event("i915", "i915_reg_rw", 1)

then the i915:i915_reg_rw event is enabled at the load time.

While, I am not saying I am waiting upstream to receive that patch. I 
mean we can hold on for a while: I think the trace-event can export 
some more friendly interface for enabling specified event at module 
load time. (I might make some patches if I have time).

Thanks.
> 
> That would seem to do the trick. The alternative would be to override the
> use of trace_event_raw_init in the include/trace/ftrace.h macros. In light
> of that the above seems much simpler.
> -Chris
> 


_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to