Messages in this thread |  | | | Subject | Re: [PATCH 3/9 - v2][RFC] tracing : Remove per event trace registering | | From | Steven Rostedt <> | | Date | Fri, 07 May 2010 08:42:30 -0400 |
| |
"Frederic Weisbecker" <fweisbec@gmail.com> wrote:
>On Mon, May 03, 2010 at 11:40:48PM -0400, Steven Rostedt wrote: >> From: Steven Rostedt <srostedt@redhat.com> >> >> This patch removes the register functions of TRACE_EVENT() to enable >> and disable tracepoints. The registering of a event is now down >> directly in the trace_events.c file. The tracepoint_probe_register() >> is now called directly. >> >> The prototypes are no longer type checked, but this should not be >> an issue since the tracepoints are created automatically by the >> macros. If a prototype is incorrect in the TRACE_EVENT() macro, then >> other macros will catch it. > > > >Agreed. Typechecking matters for human code but not in this context. >Considering that the tracepoint and the probe are created by the same >CPP code, bugs will be tracked down quickly and located to a single >place. > > > > >> >> The trace_event_class structure now holds the probes to be called >> by the callbacks. This removes needing to have each event have >> a separate pointer for the probe. >> >> To handle kprobes and syscalls, since they register probes in a >> different manner, a "reg" field is added to the ftrace_event_class >> structure. If the "reg" field is assigned, then it will be called for >> enabling and disabling of the probe for either ftrace or perf. To let >> the reg function know what is happening, a new enum (trace_reg) is >> created that has the type of control that is needed. >> >> With this new rework, the 82 kernel events and 616 syscall events >> has their footprint dramatically lowered: >> >> text data bss dec hex filename >> 5788186 1337252 9351592 16477030 fb6b66 vmlinux.orig >> 5792282 1333796 9351592 16477670 fb6de6 vmlinux.class >> 5793448 1333780 9351592 16478820 fb7264 vmlinux.tracepoint >> 5796926 1337748 9351592 16486266 fb8f7a vmlinux.data >> 5774316 1306580 9351592 16432488 fabd68 vmlinux.regs >> >> The size went from 16477030 to 16432488, that's a total of 44K >> in savings. With tracepoints being continuously added, this is >> critical that the footprint becomes minimal. >> >> v2: Changed the callback probes to pass void * and typecast the >> value within the function. >> >> Signed-off-by: Steven Rostedt <rostedt@goodmis.org> > > > >Very nice!! > >Acked-by: Frederic Weisbecker <fweisbec@gmail.com> >
Thanks!
-- Steve
-- Sent from my Android phone with K-9 Mail. Please excuse my brevity.
|  |