rcu_read_lock_tasks_trace(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

🌸 NAME 🌸

rcu_read_lock_tasks_trace β€” mark beginning of RCU-trace read-side critical section. ✨

Okay bestie, this is the manual page for rcu_read_lock_tasks_trace(9) from the Kernel API Manual, and yes we're getting into the RCU-trace read-side critical-section lore. πŸ’…

✨ SYNOPSIS ✨

struct srcu_ctr __percpu * rcu_read_lock_tasks_trace (void );

πŸŽ€ ARGUMENTS πŸŽ€

  • void β€” no arguments, bestie. Literally none. 🫢

πŸ’– DESCRIPTION πŸ’–

When synchronize_rcu_tasks_trace is invoked by one task, then that task is guaranteed to block until all other tasks exit their read-side critical sections. No cap. 😭

Similarly, if call_rcu_trace is invoked on one task while other tasks are within RCU read-side critical sections, invocation of the corresponding RCU callback is deferred until after all the other tasks exit their critical sections. The callback is lowkey waiting its turn, periodt. πŸ’€

For more details, please see the documentation for srcu_read_lock_fast. πŸ“š

For a description of how implicit RCU readers provide the needed ordering for architectures defining the ARCH_WANTS_NO_INSTR Kconfig option (and thus promising never to trace code where RCU is not watching), please see the __srcu_read_lock_fast (non-kerneldoc) header comment. πŸ‘€ Otherwise, the smp_mb below provided the needed ordering. 🧚

🌈 SEE ALSO 🌈


mwah πŸ’‹ byeee, this was rcu_read_lock_tasks_trace(9) from the Kernel API Manual β€” source/version: ./include/linux, dated October 2026. πŸŽ€βœ¨

πŸ“¦ where this page comes from