summaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorSteven Rostedt (Red Hat) <rostedt@goodmis.org>2016-11-28 17:48:07 -0500
committerSteven Rostedt <rostedt@goodmis.org>2016-12-09 09:16:15 -0500
commit9c1f6bb8c88ab6c2779bdaf12d4f3407d336f085 (patch)
tree4a06b9bff71e1d782f95138a351165122c0e0a94 /kernel
parent989a0a3d248192b6f5d16cc2aea95faed89bb7ce (diff)
downloadop-kernel-dev-9c1f6bb8c88ab6c2779bdaf12d4f3407d336f085.zip
op-kernel-dev-9c1f6bb8c88ab6c2779bdaf12d4f3407d336f085.tar.gz
tracing: Allow benchmark to be enabled at early_initcall()
The trace event start up selftests fails when the trace benchmark is enabled, because it is disabled during boot. It really only needs to be disabled before scheduling is set up, as it creates a thread. Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Diffstat (limited to 'kernel')
-rw-r--r--kernel/trace/trace_benchmark.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/kernel/trace/trace_benchmark.c b/kernel/trace/trace_benchmark.c
index 2bc7dc3..e3b4888 100644
--- a/kernel/trace/trace_benchmark.c
+++ b/kernel/trace/trace_benchmark.c
@@ -21,6 +21,8 @@ static u64 bm_stddev;
static unsigned int bm_avg;
static unsigned int bm_std;
+static bool ok_to_run;
+
/*
* This gets called in a loop recording the time it took to write
* the tracepoint. What it writes is the time statistics of the last
@@ -166,7 +168,7 @@ static int benchmark_event_kthread(void *arg)
*/
int trace_benchmark_reg(void)
{
- if (system_state != SYSTEM_RUNNING) {
+ if (!ok_to_run) {
pr_warning("trace benchmark cannot be started via kernel command line\n");
return -EBUSY;
}
@@ -207,3 +209,12 @@ void trace_benchmark_unreg(void)
bm_avg = 0;
bm_stddev = 0;
}
+
+static __init int ok_to_run_trace_benchmark(void)
+{
+ ok_to_run = true;
+
+ return 0;
+}
+
+early_initcall(ok_to_run_trace_benchmark);
OpenPOWER on IntegriCloud