ring_buffer_read_start(9)
okay so bestie, this is ring_buffer_read_start(9) from the Kernel API Manual β and it's literally giving βpeek but donβt consumeβ main character energy π
β¨
πΈ NAME πΈ
ring_buffer_read_start β start a non consuming read of the buffer π«Ά
β¨ SYNOPSIS β¨
struct ring_buffer_iter * ring_buffer_read_start (struct trace_buffer
*buffer , int cpu , gfp_t flags );
π ARGUMENTS π
bufferβ the ring buffer to read from, bestie πcpuβ the cpu buffer to iterate over πflagsβgfpflags to use for memory allocation, no cap π§
π« DESCRIPTION π«
okay so this function creates an iterator to allow non-consuming iteration through the buffer β literally the βlook, donβt eatβ of kernel reads, and Iβm obsessed π¦
If the buffer is disabled for writing, it will produce the same information each time. But if the buffer is still writing, then the first hit of a write will cause the iteration to stop. β οΈ Thatβs the vibe check: writing says βbestie, weβre done hereβ and iteration stops, fr fr.
Must be paired with ring_buffer_read_finish. Do not leave your iterator hanging, thatβs not slay behavior ππ«Ά
π SEE ALSO π
- Kernel file
./kernel/trace/ring_buffer.cβ go look, iykyk π
the whole extended friend group is here, no cap:
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_consume(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)
mwah π thatβs the whole page, bestie β this one comes from the source/version ./kernel/trace and is dated October 2026, and yes itβs still ring_buffer_read_start(9) and still iconic, periodt πβ¨
π¦ 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