lkml.org 
[lkml]   [2010]   [Apr]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH 04/10][RFC] tracing: Remove per event trace registering
    From
    Date
    On Wed, 2010-04-28 at 16:44 -0400, Mathieu Desnoyers wrote:
    > * Steven Rostedt (rostedt@goodmis.org) 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.
    > >
    > > 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.
    >
    > Have you tried doing a BUILD_BUG_ON() on __typeof__() mismatch between
    > the type of the callback generated by TRACE_EVENT() and the expected
    > type ? This might help catching tricky preprocessor macro errors early.

    Well, we could, but if it is broken once, it is broken everywhere.

    -- Steve




    \
     
     \ /
      Last update: 2010-04-29 02:03    [W:0.031 / U:33.300 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site