diff options
author | Steven Rostedt (Red Hat) <rostedt@goodmis.org> | 2014-12-12 20:05:10 -0500 |
---|---|---|
committer | Steven Rostedt <rostedt@goodmis.org> | 2014-12-15 10:16:50 -0500 |
commit | 5f893b2639b21ffe6834b1aebba392c37d2b83f9 (patch) | |
tree | aff7db6baf3dd393a4791f2106ebacbe02b1ae5b /kernel/trace/trace_syscalls.c | |
parent | aee4e5f3d3abb7a2239dd02f6d8fb173413fd02f (diff) |
tracing: Move enabling tracepoints to just after rcu_init()
Enabling tracepoints at boot up can be very useful. The tracepoint
can be initialized right after RCU has been. There's no need to
wait for the early_initcall() to be called. That's too late for some
things that can use tracepoints for debugging. Move the logic to
enable tracepoints out of the initcalls and into init/main.c to
right after rcu_init().
This also allows trace_printk() to be used early too.
Link: http://lkml.kernel.org/r/alpine.DEB.2.11.1412121539300.16494@nanos
Link: http://lkml.kernel.org/r/20141214164104.307127356@goodmis.org
Reviewed-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Suggested-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Diffstat (limited to 'kernel/trace/trace_syscalls.c')
-rw-r--r-- | kernel/trace/trace_syscalls.c | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/kernel/trace/trace_syscalls.c b/kernel/trace/trace_syscalls.c index a72f3d8d813e..ec239771c175 100644 --- a/kernel/trace/trace_syscalls.c +++ b/kernel/trace/trace_syscalls.c | |||
@@ -514,7 +514,7 @@ unsigned long __init __weak arch_syscall_addr(int nr) | |||
514 | return (unsigned long)sys_call_table[nr]; | 514 | return (unsigned long)sys_call_table[nr]; |
515 | } | 515 | } |
516 | 516 | ||
517 | static int __init init_ftrace_syscalls(void) | 517 | void __init init_ftrace_syscalls(void) |
518 | { | 518 | { |
519 | struct syscall_metadata *meta; | 519 | struct syscall_metadata *meta; |
520 | unsigned long addr; | 520 | unsigned long addr; |
@@ -524,7 +524,7 @@ static int __init init_ftrace_syscalls(void) | |||
524 | GFP_KERNEL); | 524 | GFP_KERNEL); |
525 | if (!syscalls_metadata) { | 525 | if (!syscalls_metadata) { |
526 | WARN_ON(1); | 526 | WARN_ON(1); |
527 | return -ENOMEM; | 527 | return; |
528 | } | 528 | } |
529 | 529 | ||
530 | for (i = 0; i < NR_syscalls; i++) { | 530 | for (i = 0; i < NR_syscalls; i++) { |
@@ -536,10 +536,7 @@ static int __init init_ftrace_syscalls(void) | |||
536 | meta->syscall_nr = i; | 536 | meta->syscall_nr = i; |
537 | syscalls_metadata[i] = meta; | 537 | syscalls_metadata[i] = meta; |
538 | } | 538 | } |
539 | |||
540 | return 0; | ||
541 | } | 539 | } |
542 | early_initcall(init_ftrace_syscalls); | ||
543 | 540 | ||
544 | #ifdef CONFIG_PERF_EVENTS | 541 | #ifdef CONFIG_PERF_EVENTS |
545 | 542 | ||