start_poll_...ize_rcu_full(9)
π NAME π
start_poll_synchronize_rcu_full β bestie, this one takes a full snapshot AND kicks off an RCU grace period. Two jobs, one function, main character energy fr fr.
(also hiii, you're reading the Kernel API Manual β¨ and the page header up top reads start_poll_...ize_rcu_full(9) β yes it's abbreviated, no it's not a typo, that's just how they print it π)
β¨ SYNOPSIS β¨
void start_poll_synchronize_rcu_full (struct rcu_gp_seq *gsp );
πΈ ARGUMENTS πΈ
gspβ okay so this is a value you got fromget_state_synchronize_rcu_fullor fromstart_poll_synchronize_rcu_fullitself π«Ά. That's the whole vibe check for this parameter.
π¦ DESCRIPTION π¦
So what actually happens π β it places the normal and expedited grace-period states in *gs. (yes, the manpage says *gs even though the argument is gsp, we do not question the lore π, we just copy it exactly π
)
Once you've got that state value, you can pass it to a later call to cond_synchronize_rcu_full or poll_state_synchronize_rcu_full and ask the real question: has a grace period actually elapsed in the meantime or not? π And when we say grace period, we mean whether normal or expedited β both count, no gatekeeping here slay.
And the little bonus feature β¨: if the grace period you need isn't already slated to start, it goes ahead and notifies RCU core that you need it. Like texting the group chat "hey we're doing this" so nobody's surprised. Iconic behavior honestly.
ngl this is the "start the timer AND take a screenshot of the timer" function and that's a serve π₯
π SEE ALSO π
Everything in the RCU cinematic universe, bestie, the whole friend group π«Ά β from the kernel file ./kernel/rcu/tree.c:
rcu_softirq_qs(9)rcu_watching_snap_stopped_since(9)rcu_is_cpu_rrupt_from_idle(9)rcu_irq_exit_check_preempt(9)__rcu_irq_enter_check_tick(9)rcu_is_watching(9)rcu_set_gpwrap_lag(9)call_rcu_hurry(9)call_rcu(9)synchronize_rcu(9)get_completed_synchronize_rcu_full(9)get_state_synchronize_rcu(9)get_state_synchronize_rcu_full(9)start_poll_synchronize_rcu(9)poll_state_synchronize_rcu(9)poll_state_synchronize_rcu_full(9)cond_synchronize_rcu(9)cond_synchronize_rcu_full(9)rcu_barrier(9)rcu_barrier_throttled(9)
okay that's the whole page, go touch some grass, or better yet go read ./kernel/rcu/tree.c π. This drop is from the ./kernel/rcu corner of the source tree, dated October 2026, and the page signs off as start_poll_...ize_rcu_full(9) β mwah, periodt ππ
π¦ 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