A recent update to have tracing_on/off() only affect the ftrace ring buffers instead of all ring buffers had a cut and paste error. The tracing_off() did the exact same thing as tracing_on() and would not actually turn off tracing. Unfortunately, tracing_off() is more important to be working than tracing_on() as this is a key development tool, as it lets the developer turn off tracing as soon as a problem is discovered. It is also used by panic and oops code. This bug also breaks the 'echo func:traceoff > set_ftrace_filter'
Unified · Split
| @@ -371,7 +371,7 @@ EXPORT_SYMBOL_GPL(tracing_on); · 370 unmodified lines | |||
| 371 | void tracing_off(void) | 371 | void tracing_off(void) |
| 372 | { | 372 | { |
| 373 | if (global_trace.buffer) | 373 | if (global_trace.buffer) |
| 374 | ring_buffer_record_on(global_trace.buffer); | 374 | ring_buffer_record_off(global_trace.buffer); |
| 375 | /* | 375 | /* |
| 376 | * This flag is only looked at when buffers haven't been | 376 | * This flag is only looked at when buffers haven't been |
| 377 | * allocated yet. We don't really care about the race | 377 | * allocated yet. We don't really care about the race |