rcu_softirq_qs(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… rcu_softirq_qs(9) β€” from the Kernel API Manual, bestie πŸŽ€

okay so picture this: you're deep in softirq land, and RCU is out here waiting on you like πŸ‘€. This little function is your "hey bestie, I'm not holding anything, you can go" moment. Let's get into it ✨


🌸 NAME 🌸

rcu_softirq_qs β€” gives you a whole little set of RCU quiescent states right inside softirq processing πŸ¦‹


✨ SYNOPSIS ✨

void rcu_softirq_qs (void );

πŸŽ€ ARGUMENTS πŸŽ€

  • void β€” no arguments. zero. nada. she takes nothing and gives you quiescent states. iconic behΓ‘vior honestly πŸ‘‘

πŸ’– DESCRIPTION πŸ’–

So what she does: she marks a quiescent state for RCU, Tasks RCU, and Tasks Trace RCU. all three. at once. ate and left no crumbs πŸ’…

But listen β€” this is a special-purpose function, okay? It's meant for the softirq infrastructure and maybe, like, the occasional long-running softirq handler. It's not a casual "let me just sprinkle this everywhere" situation, iykyk πŸ™ˆ

ngl the key thing to internalize: from RCU's point of view, calling rcu_softirq_qs is equivalent to momentarily completely enabling preemption. Like... for one hot second, RCU sees everything wide open. main character energy 🌈

For example, say you've got this code:

local_bh_disable;
do_something;
rcu_softirq_qs;  // A
do_something_else;
local_bh_enable;  // B

A call to synchronize_rcu that started concurrently with the call to do_something is guaranteed to wait only until execution reached statement A. ⭐

But without that rcu_softirq_qs? Then that same synchronize_rcu would instead be guaranteed to wait all the way until execution reached statement B. 😭 so yeah, that one call is doing a LOT of heavy lifting. lowkey the whole plot twist πŸ”₯


πŸ’€ SEE ALSO πŸ’€

Kernel file ./kernel/rcu/tree.c and her whole friend group 🫢:


and that's the whole page, bestie!! πŸ’œ this one comes to you from ./kernel/rcu, dated October 2026 β€” no cap, that's the source, the version and the date all in one cute little sign-off πŸ“βœ¨ go forth and mark those quiescent states, you've got this πŸ§šβ€β™€οΈ

πŸ“¦ where this page comes from