ring_buffer_..._disable_cpu(9)
π ring_buffer_..._disable_cpu(9) β like, the Kernel API Manual, bestie β¨
okay so before we even start: yes, the page title is literally ring_buffer_..._disable_cpu(9) (the ... is doing a lot of heavy lifting, iykyk), and it lives in the Kernel API Manual. she's a kernel function, she's fancy, she's about to tell one specific CPU to shut up and stop writing. let's get into it π
πΈ NAME πΈ
ring_buffer_record_disable_cpu β stop all writes into the cpu_buffer π
like, all of them. not a vibe check, an actual stop.
β¨ SYNOPSIS β¨
void ring_buffer_record_disable_cpu (struct trace_buffer *buffer , int
cpu );
that's it. that's the whole signature. void return, so she gives you nothing back β she just does the thing. iconic behavior honestly π
π¦ ARGUMENTS π¦
bufferβ the ring buffer you want to stop writes to. she's the main character here, the big one, the whole trace buffer. π«Άcpuβ the CPU buffer to stop. yes, specifically that CPU. we're being surgical, not messy. π
π DESCRIPTION π
so here's the tea, bestie: this function prevents all writes to the buffer. every single one. gone. blocked. no cap.
and if something tries to write to the buffer after this? it will fail and return NULL. π that's it, that's the whole attempt, straight to NULL jail.
β οΈ important caller homework: the caller should call synchronize_rcu after this. don't skip it. it's not optional-vibes, it's the actual instruction. π§
π SEE ALSO π
the source of all this wisdom lives in the kernel file ./kernel/trace/ring_buffer.c β β and here's the full friend group, every single one of them, in the original order:
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_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)
and that's the whole page, bestie π she comes to you straight from ./kernel/trace, dated October 2026, and yes the docs really did name the footer file and the month like that β periodt. go call synchronize_rcu, ily, bye π¦πΈ
π¦ 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