• Steven Rostedt's avatar
    tracing: Create new DEFINE_EVENT_PRINT · e5bc9721
    Steven Rostedt authored
    After creating the TRACE_EVENT_TEMPLATE I started to look at other
    trace points to see what duplication was made. I noticed that there
    are several trace points where they are almost identical except for
    the name and the output format. Since TRACE_EVENT_TEMPLATE was successful
    in bringing down the size of trace events, I added a DEFINE_EVENT_PRINT.
    
    DEFINE_EVENT_PRINT is used just like DEFINE_EVENT is. That is, the
    DEFINE_EVENT_PRINT also uses a TRACE_EVENT_TEMPLATE, but it allows the
    developer to overwrite the print format. If there are two or more
    TRACE_EVENTS that are identical except for the name and print, then
    they can be converted to use a TRACE_EVENT_TEMPLATE. Since the
    TRACE_EVENT_TEMPLATE already does the print output, the first trace event
    would have its print format held in the TRACE_EVENT_TEMPLATE and
    be defined with a DEFINE_EVENT. The rest will use the DEFINE_EVENT_PRINT
    and override the print format.
    
    Converting the sched trace points to both DEFINE_EVENT and
    DEFINE_EVENT_PRINT. Five were converted to DEFINE_EVENT and two were
    converted to DEFINE_EVENT_PRINT.
    
    I was able to get the following:
    
    $ size kernel/sched.o-*
       text	   data	    bss	    dec	    hex	filename
      79299	   6776	   2520	  88595	  15a13	kernel/sched.o-notrace
     101941	  11896	   2584	 116421	  1c6c5	kernel/sched.o-templ
     104779	  11896	   2584	 119259	  1d1db	kernel/sched.o-trace
    
    sched.o-notrace is the scheduler compiled with no trace points.
    sched.o-templ is with the use of DEFINE_EVENT and DEFINE_EVENT_PRINT
    sched.o-trace is the current trace events.
    Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
    e5bc9721
define_trace.h 2.4 KB