• Vaibhav Nagarnaik's avatar
    tracing: Add a proc file to stop tracing and free buffer · 4f271a2a
    Vaibhav Nagarnaik authored
    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: default avatarVaibhav Nagarnaik <vnagarnaik@google.com>
    Link: http://lkml.kernel.org/r/1308012717-11148-1-git-send-email-vnagarnaik@google.comSigned-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
    4f271a2a
trace.c 105 KB