Re: [PATCH v3 4/5] ring-buffer: Use flush_kernel_vmap_range() over flush_dcache_folio()
From: Steven Rostedt
Date: Tue Apr 01 2025 - 16:38:18 EST
On Tue, 01 Apr 2025 16:25:53 -0400
Steven Rostedt <rostedt@xxxxxxxxxxx> wrote:
>
> static void
> @@ -7319,7 +7319,8 @@ int ring_buffer_map_get_reader(struct trace_buffer *buffer, int cpu)
>
> out:
> /* Some archs do not have data cache coherency between kernel and user-space */
> - flush_dcache_folio(virt_to_folio(cpu_buffer->reader_page->page));
> + flush_kernel_vmap_range(cpu_buffer->reader_page->page,
> + buffer->subbuf_size + BUF_PAGE_HDR_SIZE);
>
> rb_update_meta_page(cpu_buffer);
>
This patch actually fixes a bug (I need to update the change log).
The previous code only flushed a page. But if the sub-buffer size was 2 or
more pages, it would not flush the rest of the sub-buffer.
-- Steve