Skip to content

Commit

Permalink
tracing: Allow benchmark to be enabled at early_initcall()
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Steven Rostedt (Red Hat) committed Dec 9, 2016
1 parent 989a0a3 commit 9c1f6bb
Showing 1 changed file with 12 additions and 1 deletion.
13 changes: 12 additions & 1 deletion kernel/trace/trace_benchmark.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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;
}
Expand Down Expand Up @@ -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);

0 comments on commit 9c1f6bb

Please sign in to comment.