ring_buffer_lock_reserve(9)
Hey bestie!! π You're looking at ring_buffer_lock_reserve(9), straight out of the Kernel API Manual β¨ This is the page that explains how to reserve a little chunk of the ring buffer, and I promise it's less scary than it sounds π«Ά
π NAME π
ring_buffer_lock_reserve β reserve a part of the buffer π
β¨ SYNOPSIS β¨
struct ring_buffer_event * ring_buffer_lock_reserve (struct trace_buffer
*buffer , unsigned long length );
π ARGUMENTS π
bufferβ the ring buffer you're reserving from, bestie πlengthβ the length of the data you wanna reserve, and just so we're clear this is excluding the event header π
π¦ DESCRIPTION π¦
Okay so this returns a reserved event on the ring buffer that you can copy directly to π― The user of this interface will need to get the body to write into, and can use the ring_buffer_event_data interface for that β that's the whole vibe π
The length is the length of the data you need, not the event length β the event length also includes the event header, okay?? π Don't mix them up.
Must be paired with ring_buffer_unlock_commit, unless NULL is returned π«Ά If NULL comes back, then nothing has been allocated or locked β like, literally nothing happened. No cap π
πΈ SEE ALSO πΈ
Kernel file ./kernel/trace/ring_buffer.c β and the whole friend group is here:
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_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_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)
Byeee bestie π«Ά β this was ring_buffer_lock_reserve(9) from the Kernel API Manual, footer source ./kernel/trace, dated October 2026 ππ
π¦ 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