ring-buffer: Add nesting for adding events within events
authorSteven Rostedt (VMware) <rostedt@goodmis.org>
Wed, 7 Feb 2018 22:26:32 +0000 (17:26 -0500)
committerSteven Rostedt (VMware) <rostedt@goodmis.org>
Sat, 10 Mar 2018 21:06:04 +0000 (16:06 -0500)
commit8e012066fe0de5ff5be606836f9075511bce5604
tree1b3cccc845dc32c7ac25d648c86453c750e3b863
parenta4072fe85ba3671720cab0788291af953db27318
ring-buffer: Add nesting for adding events within events

The ring-buffer code has recusion protection in case tracing ends up tracing
itself, the ring-buffer will detect that it was called at the same context
(normal, softirq, interrupt or NMI), and not continue to record the event.

With the histogram synthetic events, they are called while tracing another
event at the same context. The recusion protection triggers because it
detects tracing at the same context and stops it.

Add ring_buffer_nest_start() and ring_buffer_nest_end() that will notify the
ring buffer that a trace is about to happen within another trace and that it
is intended, and not to trigger the recursion blocking.

Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
include/linux/ring_buffer.h
kernel/trace/ring_buffer.c