aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/trace/trace_syscalls.c
diff options
context:
space:
mode:
authorSteven Rostedt (Red Hat) <rostedt@goodmis.org>2014-12-12 20:05:10 -0500
committerSteven Rostedt <rostedt@goodmis.org>2014-12-15 10:16:50 -0500
commit5f893b2639b21ffe6834b1aebba392c37d2b83f9 (patch)
treeaff7db6baf3dd393a4791f2106ebacbe02b1ae5b /kernel/trace/trace_syscalls.c
parentaee4e5f3d3abb7a2239dd02f6d8fb173413fd02f (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.c7
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
517static int __init init_ftrace_syscalls(void) 517void __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}
542early_initcall(init_ftrace_syscalls);
543 540
544#ifdef CONFIG_PERF_EVENTS 541#ifdef CONFIG_PERF_EVENTS
545 542