Prev: [PULL REQUEST] two small fixes for md for 2.6.34
Next: Driver for a SmartCard interface on a SoC
From: Steven Rostedt on 7 May 2010 09:10 "Frederic Weisbecker" <fweisbec(a)gmail.com> wrote: >On Mon, May 03, 2010 at 11:40:48PM -0400, Steven Rostedt wrote: >> From: Steven Rostedt <srostedt(a)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(a)goodmis.org> > > > >Very nice!! > >Acked-by: Frederic Weisbecker <fweisbec(a)gmail.com> > Thanks! -- Steve -- Sent from my Android phone with K-9 Mail. Please excuse my brevity.
|
Pages: 1 Prev: [PULL REQUEST] two small fixes for md for 2.6.34 Next: Driver for a SmartCard interface on a SoC |