tracing: Make tracepoint_printk a static_key
authorSteven Rostedt (Red Hat) <rostedt@goodmis.org>
Wed, 23 Nov 2016 20:52:45 +0000 (15:52 -0500)
committerSteven Rostedt <rostedt@goodmis.org>
Wed, 23 Nov 2016 20:52:45 +0000 (15:52 -0500)
commit4239174570da080f3623724d97062bf55de7e36b
tree8a2907e9feda1675a82c03414b62b1be36151cb3
parent929ddbf3ef4e07fef67e93e998020d49d2533724
tracing: Make tracepoint_printk a static_key

Currently, when tracepoint_printk is set (enabled by the "tp_printk" kernel
command line), it causes trace events to print via printk(). This is a very
dangerous operation, but is useful for debugging.

The issue is, it's seldom used, but it is always checked even if it's not
enabled by the kernel command line. Instead of having this feature called by
a branch against a variable, turn that variable into a static key, and this
will remove the test and jump.

To simplify things, the functions output_printk() and
trace_event_buffer_commit() were moved from trace_events.c to trace.c.

Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
include/linux/ftrace.h
kernel/sysctl.c
kernel/trace/trace.c
kernel/trace/trace_events.c