On Wed, 20 May 2026 14:49:48 -0400 Steven Rostedt <[email protected]> wrote:
> From: Steven Rostedt <[email protected]> > > When the persistent ring buffer is validated on boot up, if a subbuffer is > deemed invalid, it resets the buffer and continues. Have the code preserve > the RB_MISSED_EVENTS flag in the commit portion of the subbuffer header > and pass that back so that the trace_pipe file can show the missed events > like the trace file does. > > For example: > > <...>-1242 [005] d.... 4429.120116: page_fault_user: > address=0x7ffaebb6e728 ip=0x7ffaeb9d4960 error_code=0x7 > <...>-1242 [005] ..... 4429.120124: mm_page_alloc: > page=00000000055254f3 pfn=0x1373bd order=0 migratetype=1 > gfp_flags=GFP_HIGHUSER_MOVABLE|__GFP_COMP > <...>-1242 [005] d..2. 4429.120132: tlb_flush: pages:1 reason:local MM > shootdown (3) > CPU:5 [LOST EVENTS] > <...>-1242 [005] d.... 4429.120661: page_fault_user: > address=0x55ba7c2d0944 ip=0x55ba7c20cd02 error_code=0x7 > <...>-1242 [005] ..... 4429.120669: mm_page_alloc: > page=0000000005a02500 pfn=0x12b6e4 order=0 migratetype=1 > gfp_flags=GFP_HIGHUSER_MOVABLE|__GFP_COMP > <...>-1242 [005] d..2. 4429.120680: tlb_flush: pages:1 reason:local MM > shootdown (3) OK, this looks good, but I have a comment below. [...] > @@ -7123,19 +7132,23 @@ int ring_buffer_read_page(struct trace_buffer *buffer, > * the reader page. > */ > if (full && > - (!read || (len < (commit - read)) || > + (!read || (len < (size - read)) || > cpu_buffer->reader_page == cpu_buffer->commit_page)) > return -1; > > - if (len > (commit - read)) > - len = (commit - read); > + if (len > (size - read)) > + len = (size - read); > > /* Always keep the time extend and data together */ > - size = rb_event_ts_length(event); > + event_size = rb_event_ts_length(event); > > - if (len < size) > + if (len < event_size) > return -1; > > + if (commit & RB_MISSED_EVENTS) { > + printk("MISSED\n"); Is it for debug? > + flags = RB_MISSED_EVENTS; } nit: block closing brace is in the previous line. Maybe typo? Thanks, -- Masami Hiramatsu (Google) <[email protected]>
