On Tue, Aug 25, 2026 at 08:47:07AM -0400, Steven Rostedt wrote:
> On Tue, 25 Aug 2026 09:26:07 +0100
> Vincent Donnefort <[email protected]> wrote:
> 
> > 
> > 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

Reply via email to