]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
ring-buffer: Fix reader page read offset for remote buffers
authorVincent Donnefort <vdonnefort@google.com>
Wed, 29 Jul 2026 13:36:09 +0000 (14:36 +0100)
committerSteven Rostedt <rostedt@goodmis.org>
Wed, 29 Jul 2026 23:41:14 +0000 (19:41 -0400)
A page swapped in by __rb_get_reader_page_from_remote() retains its
stale read offset, causing subsequent reads to skip events or read
past valid data. Fix it.

Link: https://patch.msgid.link/20260729133609.4022734-1-vdonnefort@google.com
Fixes: fbd1743ecba1 ("ring-buffer: Add non-consuming read for ring-buffer remotes")
Signed-off-by: Vincent Donnefort <vdonnefort@google.com>
Reviewed-by: Keir Fraser <keirf@google.com>
Tested-by: Keir Fraser <keirf@google.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
kernel/trace/ring_buffer.c

index 804ccae694d2151810da6ed0d2c01e069de1e529..78d3875a47a57fbd8975db8dbab1614e725381d0 100644 (file)
@@ -5783,6 +5783,7 @@ __rb_get_reader_page_from_remote(struct ring_buffer_per_cpu *cpu_buffer)
 
        cpu_buffer->head_page = new_head;
        cpu_buffer->reader_page = new_reader;
+       cpu_buffer->reader_page->read = 0;
        cpu_buffer->pages = &new_head->list;
        cpu_buffer->read_stamp = new_reader->page->time_stamp;
        cpu_buffer->lost_events = cpu_buffer->meta_page->reader.lost_events;