rb_subbuf_capacity(9)
π rb_subbuf_capacity β from the Kernel API Manual, bestie β¨
Okay so picture this: we're deep in ./kernel/trace/ring_buffer.c land, and this little function is here to tell you how much room a subbuffer has. That's it. That's the whole vibe. But like, read the fine print, because the fine print is loud. π«Ά
πΈ NAME πΈ
rb_subbuf_capacity β literally just get the capacity of a subbuffer, no cap.
π SYNOPSIS π
unsigned int rb_subbuf_capacity (struct trace_buffer *buffer );
π¦ ARGUMENTS π¦
bufferβ a trace buffer. that's the whole arg. she's low maintenance. π
β¨ DESCRIPTION β¨
So here's the tea, and it's kind of a big deal: this is unsafe to use without holding trace_buffer::mutex or with resizing enabled. Like, do not just walk up and call it, bestie. π
If you were thinking "hmm, maybe I'll just use this casually," the man page itself is like consider rb_page_capacity instead. So like, consider rb_page_capacity instead. it's giving "the safe friend who texts you back." π
β οΈ unsafe without the mutex, and unsafe with resizing enabled. not a vibe you want to mess with.
π₯ RETURN π₯
The maximum size available for events in a trace buffer subbuffer. that's the number. slay. π
π SEE ALSO π
The whole ring buffer friend group showed up, and honestly? iconic. π
ring_buffer_event_length(9)ring_buffer_event_data(9)rb_page_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_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)
also the kernel file ./kernel/trace/ring_buffer.c is where all this lives, iykyk. π
k bye bestie, muah π this page came straight out of the ./kernel/trace corner of the world, dated October 2026, and she's filed under rb_subbuf_capacity(9). literally iconic of her. π§β
π¦ 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