ring_buffer_consume(9)
π ring_buffer_consume(9) π
okay so this is a page from the Kernel API Manual β yes the actual kernel manual, bestie, we're in the big leagues now β and it's all about one lil function that grabs you an event and then eats it. iconique behaviour honestly.
β¨ NAME β¨
ring_buffer_consume β returns an event and then consumes it. like, gone. eaten. she ate and left no crumbs π
β¨ SYNOPSIS β¨
struct ring_buffer_event * ring_buffer_consume (struct trace_buffer
*buffer , int cpu , u64 *ts , unsigned long *lost_events );
β¨ ARGUMENTS β¨
bufferβ the ring buffer you're pulling the next event out of. this is the main character of the whole operation π«Άcpuβ the cpu whose buffer you're reading from, bestie. you gotta say which one.tsβ a variable where the timestamp gets stashed. it may beNULLβ no pressure, she's flexible β¨lost_eventsβ a variable that gets told whether any events were lost. also may beNULL, so you can literally just not care if you don't want to π
β¨ DESCRIPTION β¨
so what she does is: returns the next event sitting in the ring buffer, and that event is consumed. like, fully claimed by you. not peeked, not borrowed β consumed.
which means π sequential reads will keep handing you a different event every time, and if the producer over there is being slow, you'll eventually empty the ring buffer completely. she's a one-way ticket, no re-dos, no takesies-backsies. periodt. π
lowkey important: consumed means consumed. don't come crying later looking for that event again, because she is NOT coming back π
β¨ SEE ALSO β¨
the kernel file lives at ./kernel/trace/ring_buffer.c btw, and here is the whole entire friend group β every single one of them, no cap, we're not skipping a single bestie:
ring_buffer_event_length(9)ring_buffer_event_data(9)rb_page_capacity(9)rb_subbuf_capacity(9)rb_subbuf_max_data_size(9)rb_subbuf_start(9)ring_buffer_event_time_stamp(9)ring_buffer_nr_dirty_pages(9)ring_buffer_wake_waiters(9)ring_buffer_wait(9)ring_buffer_poll_wait(9)rb_check_pages(9)rb_validate_buffer(9)__ring_buffer_alloc(9)__ring_buffer_alloc_range(9)__ring_buffer_alloc_remote(9)ring_buffer_free(9)ring_buffer_resize(9)rb_update_event(9)ring_buffer_nest_start(9)ring_buffer_nest_end(9)ring_buffer_unlock_commit(9)ring_buffer_lock_reserve(9)ring_buffer_discard_commit(9)ring_buffer_write(9)ring_buffer_record_disable(9)ring_buffer_record_enable(9)ring_buffer_record_off(9)ring_buffer_record_on(9)ring_buffer_record_is_on(9)ring_buffer_record_is_set_on(9)ring_buffer_record_is_on_cpu(9)ring_buffer_record_disable_cpu(9)ring_buffer_record_enable_cpu(9)ring_buffer_oldest_event_ts(9)ring_buffer_bytes_cpu(9)ring_buffer_entries_cpu(9)ring_buffer_overrun_cpu(9)ring_buffer_commit_overrun_cpu(9)ring_buffer_dropped_events_cpu(9)ring_buffer_read_events_cpu(9)ring_buffer_entries(9)ring_buffer_overruns(9)ring_buffer_iter_reset(9)ring_buffer_iter_empty(9)ring_buffer_peek(9)ring_buffer_iter_peek(9)ring_buffer_read_start(9)ring_buffer_read_finish(9)ring_buffer_iter_advance(9)ring_buffer_size(9)ring_buffer_max_event_size(9)ring_buffer_reset_cpu(9)ring_buffer_reset_online_cpus(9)ring_buffer_reset(9)ring_buffer_empty(9)ring_buffer_empty_cpu(9)ring_buffer_swap_cpu(9)ring_buffer_alloc_read_page(9)ring_buffer_free_read_page(9)ring_buffer_read_page(9)ring_buffer_read_page_data(9)ring_buffer_read_page_size(9)ring_buffer_subbuf_size_get(9)ring_buffer_subbuf_order_get(9)ring_buffer_subbuf_order_set(9)
πΈ that's it, that's the whole page!! go forth and consume responsibly bestie π¦
signed off with love from ./kernel/trace, dated October 2026 β mwah, see u in the next manpage πβ¨
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms