ring-buffer: Give NMIs a chance to lock the reader_lock
authorSteven Rostedt (Red Hat) <rostedt@goodmis.org>
Thu, 28 May 2015 17:14:51 +0000 (13:14 -0400)
committerSteven Rostedt <rostedt@goodmis.org>
Thu, 28 May 2015 20:47:01 +0000 (16:47 -0400)
commit289a5a25c5d0949e4d9b9ca4f334b6af5a83e090
tree52dfb5ac2a8c5fb63a2fa84212e50b423ea04c9b
parent985e871b28fc3e73ccd21cb999ce61266dc8c941
ring-buffer: Give NMIs a chance to lock the reader_lock

Currently, if an NMI does a dump of a ring buffer, it disables
all ring buffers from ever doing any writes again. This is because
it wont take the locks for the cpu_buffer and this can cause
corruption if it preempted a read, or a read happens on another
CPU for the current cpu buffer. This is a bit overkill.

First, it should at least try to take the lock, and if it fails
then disable it. Also, there's no need to disable all ring
buffers, even those that are unrelated to what is being read.
Only disable the per cpu ring buffer that is being read if
it can not get the lock for it.

Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
kernel/trace/ring_buffer.c