Skip to content

Commit

Permalink
tracing: Allow tracers to start at core initcall
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Steven Rostedt authored and Steven Rostedt committed Oct 31, 2012
1 parent bcd83ea commit 6f41567
Show file tree
Hide file tree
Showing 6 changed files with 7 additions and 8 deletions.
4 changes: 2 additions & 2 deletions kernel/trace/ftrace.c
Original file line number Diff line number Diff line change
Expand Up @@ -2868,7 +2868,7 @@ static int __init ftrace_mod_cmd_init(void)
{
return register_ftrace_command(&ftrace_mod_cmd);
}
device_initcall(ftrace_mod_cmd_init);
core_initcall(ftrace_mod_cmd_init);

static void function_trace_probe_call(unsigned long ip, unsigned long parent_ip,
struct ftrace_ops *op, struct pt_regs *pt_regs)
Expand Down Expand Up @@ -4055,7 +4055,7 @@ static int __init ftrace_nodyn_init(void)
ftrace_enabled = 1;
return 0;
}
device_initcall(ftrace_nodyn_init);
core_initcall(ftrace_nodyn_init);

static inline int ftrace_init_dyn_debugfs(struct dentry *d_tracer) { return 0; }
static inline void ftrace_startup_enable(int command) { }
Expand Down
2 changes: 1 addition & 1 deletion kernel/trace/trace_branch.c
Original file line number Diff line number Diff line change
Expand Up @@ -199,7 +199,7 @@ __init static int init_branch_tracer(void)
}
return register_tracer(&branch_trace);
}
device_initcall(init_branch_tracer);
core_initcall(init_branch_tracer);

#else
static inline
Expand Down
3 changes: 1 addition & 2 deletions kernel/trace/trace_functions.c
Original file line number Diff line number Diff line change
Expand Up @@ -411,5 +411,4 @@ static __init int init_function_trace(void)
init_func_cmd_traceon();
return register_tracer(&function_trace);
}
device_initcall(init_function_trace);

core_initcall(init_function_trace);
2 changes: 1 addition & 1 deletion kernel/trace/trace_functions_graph.c
Original file line number Diff line number Diff line change
Expand Up @@ -1474,4 +1474,4 @@ static __init int init_graph_trace(void)
return register_tracer(&graph_trace);
}

device_initcall(init_graph_trace);
core_initcall(init_graph_trace);
2 changes: 1 addition & 1 deletion kernel/trace/trace_irqsoff.c
Original file line number Diff line number Diff line change
Expand Up @@ -698,4 +698,4 @@ __init static int init_irqsoff_tracer(void)

return 0;
}
device_initcall(init_irqsoff_tracer);
core_initcall(init_irqsoff_tracer);
2 changes: 1 addition & 1 deletion kernel/trace/trace_sched_wakeup.c
Original file line number Diff line number Diff line change
Expand Up @@ -637,4 +637,4 @@ __init static int init_wakeup_tracer(void)

return 0;
}
device_initcall(init_wakeup_tracer);
core_initcall(init_wakeup_tracer);

0 comments on commit 6f41567

Please sign in to comment.