call_rcu_hurry(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– call_rcu_hurry(9) πŸ’–

okay so bestie, welcome to the call_rcu_hurry page from the Kernel API Manual β€” this is the RCU one that's like call_rcu but with main character energy and absolutely zero chill about waiting around. let's get into it ✨


🌸 NAME 🌸

call_rcu_hurry β€” queue an RCU callback to be invoked after the grace period, and while you're at it, flush all the lazy callbacks (including the brand-new one you just queued) over to the main ->cblist. yeah. it does both. multitasking icon behavior πŸ’…


πŸŽ€ SYNOPSIS πŸŽ€

void call_rcu_hurry (struct rcu_head *head , rcu_callback_t func );

✨ ARGUMENTS ✨

  • head β€” the struct rcu_head structure you're using to queue up the RCU updates. it's the little handle that holds your spot in line 🫢
  • func β€” the actual callback function that gets invoked once the grace period is done. this is the thing that actually does the thing.

πŸ¦‹ DESCRIPTION πŸ¦‹

so here's the vibe: your callback function gets invoked some time after a full grace period elapses β€” which is a fancy way of saying, after every single pre-existing RCU read-side critical section has completed. all of them. no stragglers. ⭐

now for the part you're actually here for: use this API instead of call_rcu if you don't want your callback sitting around getting delayed for very long periods of time. and no, that's not a paranoid hypothetical β€” that delay can genuinely happen on systems that aren't under memory pressure, and on systems that are lightly loaded or mostly idle. your callback is just chilling there. napping. πŸ™ˆ

this function makes callbacks get invoked sooner rather than later β€” but there's a tradeoff, and we're gonna be honest about it: it does so at the expense of extra power. that's the cost. that's the deal. πŸ”₯

other than that whole hurrying thing, this function is identical to call_rcu, and it literally reuses call_rcu's logic. so if you want the details about memory ordering and all the other functionality, go read call_rcu. it's all there. iykyk 😌


πŸ‘‘ SEE ALSO πŸ‘‘

kernel file ./kernel/rcu/tree.c β€” plus these besties:


πŸ“ quick reminder bestie: the whole "sooner rather than later" thing costs extra power. not a bug, that's literally the documented tradeoff. don't come for me about your battery. πŸ’€

and that's the page! brought to you from ./kernel/rcu, dated October 2026, under the name call_rcu_hurry(9) β€” go queue something and hurry it along, you've got this πŸ§šπŸ’œπŸŒˆ

πŸ“¦ where this page comes from