On Fri, Aug 07, 2026 at 11:18:08AM +0900, Masami Hiramatsu wrote:
> On Thu, 6 Aug 2026 22:13:01 +0100
> Vincent Donnefort <[email protected]> wrote:
>
> > Dynamically resizing a persistent ring buffer is not possible. Disable
> > the feature.
>
> Is it true? Of course there is meaningless to resize the persistent
> ring buffer (because it makes the buffer none-persistent), we are currently
> allows user to resize it (like for resizing unused persistent ring buffer)
__rb_allocate_pages() in ring_buffer_resize() would call for a persistent buffer
rb_range_buffer(), which IIUC, is just reusing the same ring buffer pages as the
one already in the persistent buffer.
So, reducing the size would surely work, however increasing it, would most
likely mean having buffer_page pointing to the same buffer_data_page?
Also, the comment
/*
* Range mapped buffers have the same restrictions as memory
* mapped ones do.
*/
Made me think that resize_disabled was omitted.
>
> Thank you,
>
> >
> > Fixes: be68d63a139b ("ring-buffer: Add ring_buffer_alloc_range()")
> > Signed-off-by: Vincent Donnefort <[email protected]>
> >
> > diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c
> > index 8e2485bb3aa8..afe75ad2bbf2 100644
> > --- a/kernel/trace/ring_buffer.c
> > +++ b/kernel/trace/ring_buffer.c
> > @@ -2528,6 +2528,8 @@ rb_allocate_cpu_buffer(struct trace_buffer *buffer,
> > long nr_pages, int cpu)
> > if (cpu_buffer->ring_meta->head_buffer)
> > rb_meta_buffer_update(cpu_buffer, bpage);
> > bpage->range = 1;
> > +
> > + atomic_inc(&cpu_buffer->resize_disabled);
> > } else if (buffer->remote) {
> > struct ring_buffer_desc *desc =
> > ring_buffer_desc(buffer->remote->desc, cpu);
> >
> > --
> > 2.55.0.654.g21b8a5bc05-goog
> >
>
>
> --
> Masami Hiramatsu (Google) <[email protected]>
--
Vincent