• Steven Rostedt (Red Hat)'s avatar
    seq_buf: Move the seq_buf code to lib/ · 8d58e99a
    Steven Rostedt (Red Hat) authored
    The seq_buf functions are rather useful outside of tracing. Instead
    of having it be dependent on CONFIG_TRACING, move the code into lib/
    and allow other users to have access to it even when tracing is not
    configured.
    
    The seq_buf utility is similar to the seq_file utility, but instead of
    writing sending data back up to userland, it writes it into a buffer
    defined at seq_buf_init(). This allows us to send a descriptor around
    that writes printf() formatted strings into it that can be retrieved
    later.
    
    It is currently used by the tracing facility for such things like trace
    events to convert its binary saved data in the ring buffer into an
    ASCII human readable context to be displayed in /sys/kernel/debug/trace.
    
    It can also be used for doing NMI prints safely from NMI context into
    the seq_buf and retrieved later and dumped to printk() safely. Doing
    printk() from an NMI context is dangerous because an NMI can preempt
    a current printk() and deadlock on it.
    
    Link: http://lkml.kernel.org/p/20140619213952.058255809@goodmis.orgTested-by: default avatarJiri Kosina <jkosina@suse.cz>
    Acked-by: default avatarJiri Kosina <jkosina@suse.cz>
    Reviewed-by: default avatarPetr Mladek <pmladek@suse.cz>
    Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
    8d58e99a
seq_buf.c 8.84 KB