synchronize_rcu_tasks(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ synchronize_rcu_tasks(9) ✨

okay bestie, this is synchronize_rcu_tasks(9) from the Kernel API Manual β€” and it's lowkey iconic. fr fr, let's get into it.

πŸ’– NAME πŸ’–

synchronize_rcu_tasks β€” wait until an rcu-tasks grace period has elapsed. That's it. That's the whole mission. πŸ‘‘

🌸 SYNOPSIS 🌸

void synchronize_rcu_tasks (void );

πŸŽ€ ARGUMENTS πŸŽ€

  • void β€” no arguments. literally none. zero. the voidest void. 🫢

πŸ¦‹ DESCRIPTION πŸ¦‹

So here's the tea, bestie: control will return to the caller some time after a full rcu-tasks grace period has elapsed. In other words? After all currently executing rcu-tasks read-side critical sections have elapsed. periodt. πŸ’…

These read-side critical sections are delimited by calls to schedule, cond_resched_tasks_rcu_qs, idle execution, userspace execution, calls to synchronize_rcu_tasks, and β€” (in theory, anyway) β€” cond_resched. yes, cond_resched is in the group chat too, but the page says "in theory, anyway," so we're keeping that energy. πŸ™ˆ

This is a very specialized primitive. Like, niche niche. It is intended only for a few uses in tracing and other situations requiring manipulation of function preambles and profiling hooks. So don't just sprinkle it on everything like glitter. ✨

The synchronize_rcu_tasks function is not (yet) intended for heavy use from multiple CPUs. Not yet. The "yet" is doing a lot of work there. 😭

For more detailed information on memory ordering guarantees, see the description of synchronize_rcu. That's where the receipts live. πŸ”₯

🌈 SEE ALSO 🌈


cute sign-off: shoutout to source/version ./kernel/rcu and the October 2026 date stamp. mwah πŸ’‹

πŸ“¦ where this page comes from