tracing: Add a proc file to stop tracing and free buffer
commit4f271a2a60c748599b30bb4dafff30d770439b96
authorVaibhav Nagarnaik <vnagarnaik@google.com>
Tue, 14 Jun 2011 00:51:57 +0000 (13 17:51 -0700)
committerSteven Rostedt <rostedt@goodmis.org>
Wed, 15 Jun 2011 02:48:37 +0000 (14 22:48 -0400)
tree4b6aa671e0fbe3e81a423a551ce5aa1032725e2b
parent7ea5906405a1f3fc1c0033dfd7e02f2cfd1de5e5
tracing: Add a proc file to stop tracing and free buffer

The proc file entry buffer_size_kb is used to set the size of tracing
buffer. The memory to expand the buffer size is kernel memory. Consider
a use case where tracing is handled by a user space utility, which acts
as a gate keeper for tracing requests. In an OOM condition, tracing is
considered a low priority task and if the utility gets killed the ring
buffer memory cannot be released back to the kernel.

This patch adds a proc file called "free_buffer" whose purpose is to
stop tracing and free up the ring buffer when it is closed.

The user space process can then set the desired size in buffer_size_kb
file and open the fd to the "free_buffer" file. Under OOM condition, if
the process gets killed, the kernel closes the file descriptor. The
release handler stops the tracing and releases the kernel memory
automatically.

Cc: Ingo Molnar <mingo@redhat.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Michael Rubin <mrubin@google.com>
Cc: David Sharp <dhsharp@google.com>
Signed-off-by: Vaibhav Nagarnaik <vnagarnaik@google.com>
Link: http://lkml.kernel.org/r/1308012717-11148-1-git-send-email-vnagarnaik@google.com
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
kernel/trace/trace.c