aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/trace/trace_events.c
diff options
context:
space:
mode:
authorSteven Rostedt <srostedt@redhat.com>2010-04-23 10:00:22 -0400
committerSteven Rostedt <rostedt@goodmis.org>2010-05-14 14:20:34 -0400
commit80decc70afc57c87eee9d6b836aec2ecacba3457 (patch)
tree3aec4c67a5518a9c4e60a6914c5dbb9eb82e952f /kernel/trace/trace_events.c
parenta9a5776380208a3e48a92d0c763ee1a3b486fb73 (diff)
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>
Diffstat (limited to 'kernel/trace/trace_events.c')
-rw-r--r--kernel/trace/trace_events.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c
index 8e94255a45e..aafe5bff8f5 100644
--- a/kernel/trace/trace_events.c
+++ b/kernel/trace/trace_events.c
@@ -122,7 +122,7 @@ int trace_event_raw_init(struct ftrace_event_call *call)
122{ 122{
123 int id; 123 int id;
124 124
125 id = register_ftrace_event(call->event); 125 id = register_ftrace_event(&call->event);
126 if (!id) 126 if (!id)
127 return -ENODEV; 127 return -ENODEV;
128 call->id = id; 128 call->id = id;
@@ -1073,8 +1073,8 @@ static void remove_subsystem_dir(const char *name)
1073static void __trace_remove_event_call(struct ftrace_event_call *call) 1073static void __trace_remove_event_call(struct ftrace_event_call *call)
1074{ 1074{
1075 ftrace_event_enable_disable(call, 0); 1075 ftrace_event_enable_disable(call, 0);
1076 if (call->event) 1076 if (call->event.funcs)
1077 __unregister_ftrace_event(call->event); 1077 __unregister_ftrace_event(&call->event);
1078 debugfs_remove_recursive(call->dir); 1078 debugfs_remove_recursive(call->dir);
1079 list_del(&call->list); 1079 list_del(&call->list);
1080 trace_destroy_fields(call); 1080 trace_destroy_fields(call);