aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteven Rostedt (VMware) <rostedt@goodmis.org>2018-05-08 15:09:27 -0400
committerSteven Rostedt (VMware) <rostedt@goodmis.org>2018-05-29 08:28:29 -0400
commit58b9254757e026102a68cb44a0a15ba63787d0c0 (patch)
tree94f14616bfb87bc8b3a50f562fb7344893785a47
parent3c96529c0739959e2aa235d44e47f5c68c1e40de (diff)
tracing: Have event_trace_init() called by trace_init_tracefs()
Instead of having both trace_init_tracefs() and event_trace_init() be called by fs_initcall() routines, have event_trace_init() called directly by trace_init_tracefs(). This will guarantee order of how the events are created with respect to the rest of the ftrace infrastructure. This is needed to be able to assoctiate event files with ftrace internal events, such as the trace_marker. Reviewed-by: Namhyung Kim <namhyung@kernel.org> Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
-rw-r--r--kernel/trace/trace.c2
-rw-r--r--kernel/trace/trace.h1
-rw-r--r--kernel/trace/trace_events.c4
3 files changed, 4 insertions, 3 deletions
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
index bcd93031d042..d5000cba5a27 100644
--- a/kernel/trace/trace.c
+++ b/kernel/trace/trace.c
@@ -8111,6 +8111,8 @@ static __init int tracer_init_tracefs(void)
8111 if (IS_ERR(d_tracer)) 8111 if (IS_ERR(d_tracer))
8112 return 0; 8112 return 0;
8113 8113
8114 event_trace_init();
8115
8114 init_tracer_tracefs(&global_trace, d_tracer); 8116 init_tracer_tracefs(&global_trace, d_tracer);
8115 ftrace_init_tracefs_toplevel(&global_trace, d_tracer); 8117 ftrace_init_tracefs_toplevel(&global_trace, d_tracer);
8116 8118
diff --git a/kernel/trace/trace.h b/kernel/trace/trace.h
index 07c43960a704..d0319cbacf11 100644
--- a/kernel/trace/trace.h
+++ b/kernel/trace/trace.h
@@ -1451,6 +1451,7 @@ trace_find_event_field(struct trace_event_call *call, char *name);
1451extern void trace_event_enable_cmd_record(bool enable); 1451extern void trace_event_enable_cmd_record(bool enable);
1452extern void trace_event_enable_tgid_record(bool enable); 1452extern void trace_event_enable_tgid_record(bool enable);
1453 1453
1454extern int event_trace_init(void);
1454extern int event_trace_add_tracer(struct dentry *parent, struct trace_array *tr); 1455extern int event_trace_add_tracer(struct dentry *parent, struct trace_array *tr);
1455extern int event_trace_del_tracer(struct trace_array *tr); 1456extern int event_trace_del_tracer(struct trace_array *tr);
1456 1457
diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c
index caf76355f0a3..5b647904a65b 100644
--- a/kernel/trace/trace_events.c
+++ b/kernel/trace/trace_events.c
@@ -3144,7 +3144,7 @@ static __init int event_trace_enable_again(void)
3144 3144
3145early_initcall(event_trace_enable_again); 3145early_initcall(event_trace_enable_again);
3146 3146
3147static __init int event_trace_init(void) 3147__init int event_trace_init(void)
3148{ 3148{
3149 struct trace_array *tr; 3149 struct trace_array *tr;
3150 struct dentry *d_tracer; 3150 struct dentry *d_tracer;
@@ -3189,8 +3189,6 @@ void __init trace_event_init(void)
3189 event_trace_enable(); 3189 event_trace_enable();
3190} 3190}
3191 3191
3192fs_initcall(event_trace_init);
3193
3194#ifdef CONFIG_FTRACE_STARTUP_TEST 3192#ifdef CONFIG_FTRACE_STARTUP_TEST
3195 3193
3196static DEFINE_SPINLOCK(test_spinlock); 3194static DEFINE_SPINLOCK(test_spinlock);