tracing: Only benchmark the time tracepoints take if tracing is on
authorChunyan Zhang <zhang.chunyan@linaro.org>
Tue, 27 Oct 2015 12:12:13 +0000 (20:12 +0800)
committerSteven Rostedt <rostedt@goodmis.org>
Mon, 2 Nov 2015 18:34:58 +0000 (13:34 -0500)
There's no need to record the time tracepoints take when tracing is off.
This is because:
1) We cannot see these records since ring_buffer record is off at that
moment.
2) If tracing is off and benchmark tracepoint is enabled, the time
tracepoint takes is fewer than the same situation when tracing is on,
since the tracepoints need to be wrote into ring_buffer, it would
take more time. If turn on tracing at this moment, the average and
standard deviation cannot exactly present the time that tracepoints
take to write data into ring_buffer.

Link: http://lkml.kernel.org/r/1445947933-27955-1-git-send-email-zhang.chunyan@linaro.org
Signed-off-by: Chunyan Zhang <zhang.chunyan@linaro.org>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
kernel/trace/trace_benchmark.c

index 40a14cb..0f109c4 100644 (file)
@@ -43,7 +43,7 @@ static void trace_do_benchmark(void)
        unsigned int std = 0;
 
        /* Only run if the tracepoint is actually active */
-       if (!trace_benchmark_event_enabled())
+       if (!trace_benchmark_event_enabled() || !tracing_is_on())
                return;
 
        local_irq_disable();