diff options
| author | Steven Rostedt <srostedt@redhat.com> | 2012-10-05 12:13:07 -0400 |
|---|---|---|
| committer | Steven Rostedt <rostedt@goodmis.org> | 2012-10-31 16:45:24 -0400 |
| commit | 6f4156723c084bfc0c0f72205c541fafb8ad3ded (patch) | |
| tree | 1852fb096d1f45a6d826480b41f9d7eb292c4e8a /kernel/trace | |
| parent | bcd83ea6cbfee54e33d1527b87538dc99ca2137b (diff) | |
tracing: Allow tracers to start at core initcall
There's times during debugging that it is helpful to see traces of early
boot functions. But the tracers are initialized at device_initcall()
which is quite late during the boot process. Setting the kernel command
line parameter ftrace=function will not show anything until the function
tracer is initialized. This prevents being able to trace functions before
device_initcall().
There's no reason that the tracers need to be initialized so late in the
boot process. Move them up to core_initcall() as they still need to come
after early_initcall() which initializes the tracing buffers.
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Diffstat (limited to 'kernel/trace')
| -rw-r--r-- | kernel/trace/ftrace.c | 4 | ||||
| -rw-r--r-- | kernel/trace/trace_branch.c | 2 | ||||
| -rw-r--r-- | kernel/trace/trace_functions.c | 3 | ||||
| -rw-r--r-- | kernel/trace/trace_functions_graph.c | 2 | ||||
| -rw-r--r-- | kernel/trace/trace_irqsoff.c | 2 | ||||
| -rw-r--r-- | kernel/trace/trace_sched_wakeup.c | 2 |
6 files changed, 7 insertions, 8 deletions
diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c index 60ad606dc85f..4451aa3a55a0 100644 --- a/kernel/trace/ftrace.c +++ b/kernel/trace/ftrace.c | |||
| @@ -2868,7 +2868,7 @@ static int __init ftrace_mod_cmd_init(void) | |||
| 2868 | { | 2868 | { |
| 2869 | return register_ftrace_command(&ftrace_mod_cmd); | 2869 | return register_ftrace_command(&ftrace_mod_cmd); |
| 2870 | } | 2870 | } |
| 2871 | device_initcall(ftrace_mod_cmd_init); | 2871 | core_initcall(ftrace_mod_cmd_init); |
| 2872 | 2872 | ||
| 2873 | static void function_trace_probe_call(unsigned long ip, unsigned long parent_ip, | 2873 | static void function_trace_probe_call(unsigned long ip, unsigned long parent_ip, |
| 2874 | struct ftrace_ops *op, struct pt_regs *pt_regs) | 2874 | struct ftrace_ops *op, struct pt_regs *pt_regs) |
| @@ -4055,7 +4055,7 @@ static int __init ftrace_nodyn_init(void) | |||
| 4055 | ftrace_enabled = 1; | 4055 | ftrace_enabled = 1; |
| 4056 | return 0; | 4056 | return 0; |
| 4057 | } | 4057 | } |
| 4058 | device_initcall(ftrace_nodyn_init); | 4058 | core_initcall(ftrace_nodyn_init); |
| 4059 | 4059 | ||
| 4060 | static inline int ftrace_init_dyn_debugfs(struct dentry *d_tracer) { return 0; } | 4060 | static inline int ftrace_init_dyn_debugfs(struct dentry *d_tracer) { return 0; } |
| 4061 | static inline void ftrace_startup_enable(int command) { } | 4061 | static inline void ftrace_startup_enable(int command) { } |
diff --git a/kernel/trace/trace_branch.c b/kernel/trace/trace_branch.c index 8d3538b4ea5f..bd3e0eef4eaa 100644 --- a/kernel/trace/trace_branch.c +++ b/kernel/trace/trace_branch.c | |||
| @@ -199,7 +199,7 @@ __init static int init_branch_tracer(void) | |||
| 199 | } | 199 | } |
| 200 | return register_tracer(&branch_trace); | 200 | return register_tracer(&branch_trace); |
| 201 | } | 201 | } |
| 202 | device_initcall(init_branch_tracer); | 202 | core_initcall(init_branch_tracer); |
| 203 | 203 | ||
| 204 | #else | 204 | #else |
| 205 | static inline | 205 | static inline |
diff --git a/kernel/trace/trace_functions.c b/kernel/trace/trace_functions.c index 618dcf8bdb87..bb227e380cb5 100644 --- a/kernel/trace/trace_functions.c +++ b/kernel/trace/trace_functions.c | |||
| @@ -411,5 +411,4 @@ static __init int init_function_trace(void) | |||
| 411 | init_func_cmd_traceon(); | 411 | init_func_cmd_traceon(); |
| 412 | return register_tracer(&function_trace); | 412 | return register_tracer(&function_trace); |
| 413 | } | 413 | } |
| 414 | device_initcall(init_function_trace); | 414 | core_initcall(init_function_trace); |
| 415 | |||
diff --git a/kernel/trace/trace_functions_graph.c b/kernel/trace/trace_functions_graph.c index 99b4378393d5..a84b55879bc4 100644 --- a/kernel/trace/trace_functions_graph.c +++ b/kernel/trace/trace_functions_graph.c | |||
| @@ -1474,4 +1474,4 @@ static __init int init_graph_trace(void) | |||
| 1474 | return register_tracer(&graph_trace); | 1474 | return register_tracer(&graph_trace); |
| 1475 | } | 1475 | } |
| 1476 | 1476 | ||
| 1477 | device_initcall(init_graph_trace); | 1477 | core_initcall(init_graph_trace); |
diff --git a/kernel/trace/trace_irqsoff.c b/kernel/trace/trace_irqsoff.c index d98ee8283b29..11edebda4548 100644 --- a/kernel/trace/trace_irqsoff.c +++ b/kernel/trace/trace_irqsoff.c | |||
| @@ -698,4 +698,4 @@ __init static int init_irqsoff_tracer(void) | |||
| 698 | 698 | ||
| 699 | return 0; | 699 | return 0; |
| 700 | } | 700 | } |
| 701 | device_initcall(init_irqsoff_tracer); | 701 | core_initcall(init_irqsoff_tracer); |
diff --git a/kernel/trace/trace_sched_wakeup.c b/kernel/trace/trace_sched_wakeup.c index 02170c00c413..2f6af7833694 100644 --- a/kernel/trace/trace_sched_wakeup.c +++ b/kernel/trace/trace_sched_wakeup.c | |||
| @@ -637,4 +637,4 @@ __init static int init_wakeup_tracer(void) | |||
| 637 | 637 | ||
| 638 | return 0; | 638 | return 0; |
| 639 | } | 639 | } |
| 640 | device_initcall(init_wakeup_tracer); | 640 | core_initcall(init_wakeup_tracer); |
