srcu_read_lock_fast(9)
hey bestie π welcome to the srcu_read_lock_fast(9) page from the Kernel API Manual β yes, we're doing kernel SRCU today and it's gonna be iconic β¨
β¨ NAME β¨
srcu_read_lock_fast β register a new reader for an SRCU-protected structure. π
π SYNOPSIS π
struct srcu_ctr __percpu * srcu_read_lock_fast (struct srcu_struct *ssp
);
π ARGUMENTS π
sspβ thesrcu_structin which to register the new reader. π
π¦ DESCRIPTION π¦
okay so this function enters an SRCU read-side critical section, but specifically for a light-weight smp_mb-free reader. π¦ if you want more info, see srcu_read_lock. this one is NMI-safe, in a manner similar to srcu_read_lock_nmisafe β yes bestie, it's giving safe-in-NMI energy β¨
for srcu_read_lock_fast to be used on an srcu_struct structure, that structure must have been defined using either DEFINE_SRCU_FAST or DEFINE_STATIC_SRCU_FAST on the one hand, or initialized with init_srcu_struct_fast on the other. πΈ
π¨ such ansrcu_structstructure cannot be passed to any non-fast variant ofsrcu_read_{,un}lockorsrcu_{down,up}_read. in kernels built withCONFIG_PROVE_RCU=y,__srcu_check_read_flavorwill complain bitterly if you ignore this restriction. π
grace-period auto-expediting is disabled for SRCU-fast srcu_struct structures because SRCU-fast expedited grace periods invoke synchronize_rcu_expedited, IPIs and all π₯. if you need expedited SRCU-fast grace periods, use synchronize_srcu_expedited. periodt.
the srcu_read_lock_fast function can be invoked only from those contexts where RCU is watching, that is, from contexts where it would be legal to invoke rcu_read_lock. otherwise, lockdep will complain π
π SEE ALSO π
start with the kernel file ./include/linux/srcu.h, then go say hi to all these faves π:
get_completed_synchronize_srcu(9)same_state_synchronize_srcu(9)srcu_read_lock_held(9)srcu_dereference_check(9)srcu_dereference(9)srcu_dereference_notrace(9)srcu_read_lock(9)srcu_read_lock_fast_updown(9)srcu_down_read_fast(9)srcu_read_lock_nmisafe(9)srcu_down_read(9)srcu_read_unlock(9)srcu_read_unlock_fast(9)srcu_read_unlock_fast_updown(9)srcu_up_read_fast(9)srcu_read_unlock_nmisafe(9)srcu_up_read(9)smp_mb__after_srcu_read_unlock(9)smp_mb__after_srcu_read_lock(9)
big kiss and a sparkle π«Ά β source ./include/linux, date October 2026, page srcu_read_lock_fast(9). slay π
β¨
π¦ 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