• Steven Rostedt (Google)'s avatar
    ring-buffer: Remove useless update to write_stamp in rb_try_to_discard() · 083e9f65
    Steven Rostedt (Google) authored
    When filtering is enabled, a temporary buffer is created to place the
    content of the trace event output so that the filter logic can decide
    from the trace event output if the trace event should be filtered out or
    not. If it is to be filtered out, the content in the temporary buffer is
    simply discarded, otherwise it is written into the trace buffer.
    
    But if an interrupt were to come in while a previous event was using that
    temporary buffer, the event written by the interrupt would actually go
    into the ring buffer itself to prevent corrupting the data on the
    temporary buffer. If the event is to be filtered out, the event in the
    ring buffer is discarded, or if it fails to discard because another event
    were to have already come in, it is turned into padding.
    
    The update to the write_stamp in the rb_try_to_discard() happens after a
    fix was made to force the next event after the discard to use an absolute
    timestamp by setting the before_stamp to zero so it does not match the
    write_stamp (which causes an event to use the absolute timestamp).
    
    But there's an effort in rb_try_to_discard() to put back the write_stamp
    to what it was before the event was added. But this is useless and
    wasteful because nothing is going to be using that write_stamp for
    calculations as it still will not match the before_stamp.
    
    Remove this useless update, and in doing so, we remove another
    cmpxchg64()!
    
    Also update the comments to reflect this change as well as remove some
    extra white space in another comment.
    
    Link: https://lore.kernel.org/linux-trace-kernel/20231215081810.1f4f38fe@rorschach.local.home
    
    Cc: Masami Hiramatsu <mhiramat@kernel.org>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
    Cc: Joel Fernandes <joel@joelfernandes.org>
    Cc: Vincent Donnefort   <vdonnefort@google.com>
    Fixes: b2dd7975 ("ring-buffer: Force absolute timestamp on discard of event")
    Signed-off-by: default avatarSteven Rostedt (Google) <rostedt@goodmis.org>
    083e9f65
ring_buffer.c 165 KB