Messages in this thread | | | Date | Tue, 18 Aug 2009 10:19:06 -0400 | From | Jason Baron <> | Subject | Re: [PATCH] tracing: Move tracepoint callbacks into DEFINE |
| |
On Tue, Aug 18, 2009 at 12:23:47AM -0700, Josh Stone wrote: > It's not strictly correct for the tracepoint reg/unreg callbacks to > occur when a client is hooking up, because the actual tracepoint may no > be present yet. This happens to be fine for syscall, since that's in > the core kernel, but it would cause problems for tracepoints defined in > a module that hasn't been loaded yet. It also means the reg/unreg has > to be EXPORTed for any modules to use the tracepoint (as in SystemTap). > > This patch removes DECLARE_TRACE_WITH_CALLBACK, and instead introduces > DEFINE_TRACE_WITH_CALLBACK which stores the callbacks in struct > tracepoint. The callbacks are used now when the active state of the > tracepoint changes in set_tracepoint & disable_tracepoint. > > This also introduces TRACE_EVENT_WITH_CALLBACK, so those events can also > provide callbacks if needed. >
this makes sense...Ingo also suggested having the two high level tracepoints be 'TRACE_EVENT' style. That is we should be able to register with the syscall entry and get the *all* the syscall numbers and arguments, and likewise on exit we should be able to get *all* syscall exit return values. see:
http://marc.info/?l=linux-kernel&m=125008740803571&w=2
does this patch allow/do that?
thanks,
-Jason
| |