tracing: Use helper functions in event assignment to shrink macro size
authorSteven Rostedt <srostedt@redhat.com>
Fri, 10 Aug 2012 02:42:57 +0000 (22:42 -0400)
committerSteven Rostedt <rostedt@goodmis.org>
Fri, 7 Mar 2014 15:06:07 +0000 (10:06 -0500)
commit3fd40d1ee6a317523172ab95b6f7ea41ba8fcee3
treeb6703da042d877c047136cd4fc3263b1ffccd20d
parent35bb4399bd0ef16b8a57fccea0047d98b6b0e7fb
tracing: Use helper functions in event assignment to shrink macro size

The functions that assign the contents for the ftrace events are
defined by the TRACE_EVENT() macros. Each event has its own unique
way to assign data to its buffer. When you have over 500 events,
that means there's 500 functions assigning data uniquely for each
event (not really that many, as DECLARE_EVENT_CLASS() and multiple
DEFINE_EVENT()s will only need a single function).

By making helper functions in the core kernel to do some of the work
instead, we can shrink the size of the kernel down a bit.

With a kernel configured with 502 events, the change in size was:

   text    data     bss     dec     hex filename
12987390        1913504 9785344 24686238        178ae9e /tmp/vmlinux
12959102        1913504 9785344 24657950        178401e /tmp/vmlinux.patched

That's a total of 28288 bytes, which comes down to 56 bytes per event.

Link: http://lkml.kernel.org/r/20120810034708.370808175@goodmis.org
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
include/linux/ftrace_event.h
include/trace/ftrace.h
kernel/trace/trace_events.c