tracing: Move print functions into event class
authorSteven Rostedt <srostedt@redhat.com>
Fri, 23 Apr 2010 14:00:22 +0000 (10:00 -0400)
committerSteven Rostedt <rostedt@goodmis.org>
Fri, 14 May 2010 18:20:34 +0000 (14:20 -0400)
commit80decc70afc57c87eee9d6b836aec2ecacba3457
tree3aec4c67a5518a9c4e60a6914c5dbb9eb82e952f
parenta9a5776380208a3e48a92d0c763ee1a3b486fb73
tracing: Move print functions into event class

Currently, every event has its own trace_event structure. This is
fine since the structure is needed anyway. But the print function
structure (trace_event_functions) is now separate. Since the output
of the trace event is done by the class (with the exception of events
defined by DEFINE_EVENT_PRINT), it makes sense to have the class
define the print functions that all events in the class can use.

This makes a bigger deal with the syscall events since all syscall events
use the same class. The savings here is another 30K.

   text    data     bss     dec     hex filename
4913961 1088356  861512 6863829  68bbd5 vmlinux.orig
4900382 1048964  861512 6810858  67ecea vmlinux.init
4900446 1049028  861512 6810986  67ed6a vmlinux.preprint
4895024 1023812  861512 6780348  6775bc vmlinux.print

To accomplish this, and to let the class know what event is being
printed, the event structure is embedded in the ftrace_event_call
structure. This should not be an issues since the event structure
was created for each event anyway.

Acked-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Acked-by: Masami Hiramatsu <mhiramat@redhat.com>
Acked-by: Frederic Weisbecker <fweisbec@gmail.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
include/linux/ftrace_event.h
include/linux/syscalls.h
include/trace/ftrace.h
kernel/trace/trace_events.c
kernel/trace/trace_kprobe.c
kernel/trace/trace_syscalls.c