This is to make the persistent ring buffer more robust when sub-buffers are detected to be corrupted. Instead of invalidating the entire buffer, just invalidate the individual sub-buffers.
I started with Masami's patches and modified some from Sashiko reviews. I added a few patches to display the dropped events when the persistent ring buffers validation checks found sub-buffers were dropped due to being corrupted data. Changes since v20: https://lore.kernel.org/all/[email protected]/ - squashed the fix for max_loops in rb_iter_peek() - Still process reader page if head page fails validation (Sashiko) - Removed left over printk() (Masami Hiramatsu) Masami Hiramatsu (Google) (6): ring-buffer: Skip invalid sub-buffers when validating persistent ring buffer ring-buffer: Skip invalid sub-buffers when rewinding persistent ring buffer ring-buffer: Add persistent ring buffer invalid-page inject test ring-buffer: Show commit numbers in buffer_meta file ring-buffer: Cleanup persistent ring buffer validation ring-buffer: Cleanup buffer_data_page related code Steven Rostedt (3): ring-buffer: Have dropped subbuffers be persistent across reboots ring-buffer: Show persistent buffer dropped events in trace file ring-buffer: Show persistent buffer dropped events in trace_pipe file ---- include/linux/ring_buffer.h | 1 + kernel/trace/Kconfig | 34 +++ kernel/trace/ring_buffer.c | 543 +++++++++++++++++++++++++++++--------------- kernel/trace/trace.c | 4 + 4 files changed, 402 insertions(+), 180 deletions(-)
