Thread (14 messages) flat view 14 messages, 3 authors, 11d ago

Re: [PATCH v7 1/3] tracing: Fix subbuf resize races with trace_pipe_raw readers

From: Vincent Donnefort <hidden>
Date: 2026-08-25 12:52:18
Also in: sashiko-reviews

On Tue, Aug 25, 2026 at 08:47:07AM -0400, Steven Rostedt wrote:
On Tue, 25 Aug 2026 09:26:07 +0100
Vincent Donnefort [off-list ref] wrote:
quoted
Do you think it is still worth to reduce the window of discrepency between
buffer->subbuf_order and buffer_page->order?
Can you elaborate more on what you mean?

-- Steve
Something like this.
@@ -7469,8 +7473,6 @@ int ring_buffer_subbuf_order_set(struct trace_buffer *buffer, int order)
        /* Make sure all commits have finished */
        synchronize_rcu();
 
-       buffer->subbuf_order = order;
-
        /* Make sure all new buffers are allocated, before deleting the old ones */
        for_each_buffer_cpu(buffer, cpu) {
 
@@ -7500,6 +7502,7 @@ int ring_buffer_subbuf_order_set(struct trace_buffer *buffer, int order)
                /* Allocate the new size buffer */
                INIT_LIST_HEAD(&cpu_buffer->new_pages);
                if (__rb_allocate_pages(cpu_buffer, nr_pages,
+                                       order,
                                        &cpu_buffer->new_pages)) {
                        /* not enough memory for new pages */
                        err = -ENOMEM;
@@ -7507,6 +7510,8 @@ int ring_buffer_subbuf_order_set(struct trace_buffer *buffer, int order)
                }
        }
 
+       buffer->subbuf_order = order;
+
        for_each_buffer_cpu(buffer, cpu) {
                struct buffer_data_read_page old_free_data_page;
                struct list_head old_pages;

But now with the idea of copying the data when data_page->order !=
reader_page->order, I am less convinced there's any gain.

-- 
Vincent
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help