Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1611415

[for-next][PATCH 4/7] ftrace: Have function tracing start in early boot up

From Steven Rostedt <rostedt@goodmis.org>
Newsgroups linux.kernel
Subject [for-next][PATCH 4/7] ftrace: Have function tracing start in early boot up
Date 2017-03-29 00:20 +0200
Message-ID <tq7D4-5Qj-29@gated-at.bofh.it> (permalink)
References <tq7D3-5Qj-7@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


From: "Steven Rostedt (VMware)" <rostedt@goodmis.org>

Register the function tracer right after the tracing buffers are initialized
in early boot up. This will allow function tracing to begin early if it is
enabled via the kernel command line.

Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
---
 kernel/trace/trace.c           | 3 +++
 kernel/trace/trace.h           | 2 ++
 kernel/trace/trace_functions.c | 3 +--
 3 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
index 68a6f78f6862..4fa8e8f3c765 100644
--- a/kernel/trace/trace.c
+++ b/kernel/trace/trace.c
@@ -8036,6 +8036,9 @@ __init static int tracer_alloc_buffers(void)
 
 	register_tracer(&nop_trace);
 
+	/* Function tracing may start here (via kernel command line) */
+	init_function_trace();
+
 	/* All seems OK, enable tracing */
 	tracing_disabled = 0;
 
diff --git a/kernel/trace/trace.h b/kernel/trace/trace.h
index ae1cce91fead..571acee52a32 100644
--- a/kernel/trace/trace.h
+++ b/kernel/trace/trace.h
@@ -896,6 +896,7 @@ int using_ftrace_ops_list_func(void);
 void ftrace_init_tracefs(struct trace_array *tr, struct dentry *d_tracer);
 void ftrace_init_tracefs_toplevel(struct trace_array *tr,
 				  struct dentry *d_tracer);
+int init_function_trace(void);
 #else
 static inline int ftrace_trace_task(struct trace_array *tr)
 {
@@ -914,6 +915,7 @@ ftrace_init_global_array_ops(struct trace_array *tr) { }
 static inline void ftrace_reset_array_ops(struct trace_array *tr) { }
 static inline void ftrace_init_tracefs(struct trace_array *tr, struct dentry *d) { }
 static inline void ftrace_init_tracefs_toplevel(struct trace_array *tr, struct dentry *d) { }
+static inline int init_function_trace(void) { return 0; }
 /* ftace_func_t type is not defined, use macro instead of static inline */
 #define ftrace_init_array_ops(tr, func) do { } while (0)
 #endif /* CONFIG_FUNCTION_TRACER */
diff --git a/kernel/trace/trace_functions.c b/kernel/trace/trace_functions.c
index 0efa00d80623..4199ca61b0e5 100644
--- a/kernel/trace/trace_functions.c
+++ b/kernel/trace/trace_functions.c
@@ -687,9 +687,8 @@ static inline int init_func_cmd_traceon(void)
 }
 #endif /* CONFIG_DYNAMIC_FTRACE */
 
-static __init int init_function_trace(void)
+__init int init_function_trace(void)
 {
 	init_func_cmd_traceon();
 	return register_tracer(&function_trace);
 }
-core_initcall(init_function_trace);
-- 
2.10.2

Back to linux.kernel | Previous | Next — Previous in thread | Find similar | Unroll thread


Thread

[for-next][PATCH 0/7] tracing: [4.12] Allow function tracing to start earlier in boot up Steven Rostedt <rostedt@goodmis.org> - 2017-03-29 00:20 +0200
  [for-next][PATCH 6/7] tracing: Move trace_handle_return() out of line Steven Rostedt <rostedt@goodmis.org> - 2017-03-29 00:20 +0200
  [for-next][PATCH 5/7] ftrace: Allow for function tracing to record init functions on boot  up Steven Rostedt <rostedt@goodmis.org> - 2017-03-29 00:20 +0200
  [for-next][PATCH 7/7] ftrace/x86: Do no run CPU sync when there is only one CPU online Steven Rostedt <rostedt@goodmis.org> - 2017-03-29 00:20 +0200
  [for-next][PATCH 2/7] ftrace: Move ftrace_init() to right after memory initialization Steven Rostedt <rostedt@goodmis.org> - 2017-03-29 00:20 +0200
  [for-next][PATCH 3/7] tracing: Postpone tracer start-up tests till the system is more  robust Steven Rostedt <rostedt@goodmis.org> - 2017-03-29 00:20 +0200
  [for-next][PATCH 1/7] tracing: Split tracing initialization into two for early  initialization Steven Rostedt <rostedt@goodmis.org> - 2017-03-29 00:20 +0200
  [for-next][PATCH 4/7] ftrace: Have function tracing start in early boot up Steven Rostedt <rostedt@goodmis.org> - 2017-03-29 00:20 +0200

csiph-web