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