Thread (22 messages) flat view 22 messages, 3 authors, 28d ago

Re: [PATCH 1/6] ring-buffer: Prevent resizing of persistent ring buffer

From: Vincent Donnefort <hidden>
Date: 2026-08-07 15:25:40
Also in: lkml

On Fri, Aug 07, 2026 at 10:45:26AM -0400, Steven Rostedt wrote:
On Fri, 7 Aug 2026 10:43:12 +0100
Vincent Donnefort [off-list ref] wrote:
quoted
On Fri, Aug 07, 2026 at 09:14:26AM +0100, Vincent Donnefort wrote:
quoted
On Fri, Aug 07, 2026 at 11:18:08AM +0900, Masami Hiramatsu wrote:  
quoted
On Thu,  6 Aug 2026 22:13:01 +0100
Vincent Donnefort [off-list ref] wrote:
  
quoted
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.  
I have just tried and if reducing the size works, increasing fails in both
rb_set_head_page() and rb_insert_pages() with a warning, which I believe is
expected.

We could improve that, but it feels like it is a lot of work for a meaningless
feature which we should just disable?
Resizing a persistent ring buffer to a smaller size may be allowed, but I
see no point in increasing the size. Making it smaller should allow us to
give back a portion of the persistent ring buffer for general usage.

-- Steve
While I see the appeal to reclaim that memory, I don't think we have any good
interface for that. There is no nice way to get the list of pages that have been
freed and we have no control over what part of the ring-buffer is removed.

Also, as this memory is from a reserved-range, is there really a way to re-inject
it into the buddy allocator?

Perhaps what would make sense for resizing would be to support a CMA pool as a
persistent buffer?

-- 
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