diff options
author | Steven Rostedt (VMware) <rostedt@goodmis.org> | 2017-03-03 13:37:33 -0500 |
---|---|---|
committer | Steven Rostedt (VMware) <rostedt@goodmis.org> | 2017-03-24 13:08:43 -0400 |
commit | e725c731e3bb1e892e7b564c945b121cb41d1087 (patch) | |
tree | 90e6ebfbd020855bb1914a979fd78d4ef65b8b9d | |
parent | 97da3854c526d3a6ee05c849c96e48d21527606c (diff) |
tracing: Split tracing initialization into two for early initialization
Create an early_trace_init() function that will initialize the buffers and
allow for ealier use of trace_printk(). This will also allow for future work
to have function tracing start earlier at boot up.
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
-rw-r--r-- | include/linux/ftrace.h | 2 | ||||
-rw-r--r-- | init/main.c | 5 | ||||
-rw-r--r-- | kernel/trace/trace.c | 6 |
3 files changed, 11 insertions, 2 deletions
diff --git a/include/linux/ftrace.h b/include/linux/ftrace.h index 3633e8beff39..569db5589851 100644 --- a/include/linux/ftrace.h +++ b/include/linux/ftrace.h @@ -42,8 +42,10 @@ /* Main tracing buffer and events set up */ #ifdef CONFIG_TRACING void trace_init(void); +void early_trace_init(void); #else static inline void trace_init(void) { } +static inline void early_trace_init(void) { } #endif struct module; diff --git a/init/main.c b/init/main.c index f9c9d9948203..81a49e8d54cc 100644 --- a/init/main.c +++ b/init/main.c @@ -545,6 +545,9 @@ asmlinkage __visible void __init start_kernel(void) trap_init(); mm_init(); + /* trace_printk can be enabled here */ + early_trace_init(); + /* * Set up the scheduler prior starting any interrupts (such as the * timer interrupt). Full topology setup happens at smp_init() @@ -570,7 +573,7 @@ asmlinkage __visible void __init start_kernel(void) rcu_init(); - /* trace_printk() and trace points may be used after this */ + /* Trace events are available after this */ trace_init(); context_tracking_init(); diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index f35109514a01..6757561d9617 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c @@ -7999,7 +7999,7 @@ out: return ret; } -void __init trace_init(void) +void __init early_trace_init(void) { if (tracepoint_printk) { tracepoint_print_iter = @@ -8010,6 +8010,10 @@ void __init trace_init(void) static_key_enable(&tracepoint_printk_key.key); } tracer_alloc_buffers(); +} + +void __init trace_init(void) +{ trace_event_init(); } |