ring_buffer_lock_reserve(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

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