read_seqlock_excl_bh(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ NAME ✨

okay so literally, bestie, we're looking at read_seqlock_excl_bh(9) from the Kernel API Manual β€” and it does exactly one thing: it starts a seqlock_t locking reader section with softirqs disabled πŸ’…βœ¨


✨ SYNOPSIS ✨

void read_seqlock_excl_bh (seqlock_t *sl );

✨ ARGUMENTS ✨

  • sl β€” a pointer to a seqlock_t. that's it. that's the whole argument. simple. iconic. πŸŽ€

✨ DESCRIPTION ✨

so this is the _bh variant of read_seqlock_excl, and here's the tea bestie: you ONLY use this one if the seqlock_t write side section, or other read sections, can be invoked from softirq contexts. not me stressing the "or other read sections" part β€” read it again, it matters 😭🫢

bestie warning: this is the special-case variant. softirq contexts are the whole reason it exists, so don't just reach for it out of habit πŸ’€ lowkey read the room before you call this one.

✨ SEE ALSO ✨

check out the kernel file ./include/linux/seqlock.h plus literally the entire squad: seqcount_init(9), SEQCNT_ZERO(9), __read_seqcount_begin(9), raw_read_seqcount_begin(9), read_seqcount_begin(9), raw_read_seqcount(9), raw_seqcount_try_begin(9), raw_seqcount_begin(9), __read_seqcount_retry(9), read_seqcount_retry(9), raw_write_seqcount_begin(9), raw_write_seqcount_end(9), write_seqcount_begin_nested(9), write_seqcount_begin(9), write_seqcount_end(9), raw_write_seqcount_barrier(9), write_seqcount_invalidate(9), SEQCNT_LATCH_ZERO(9), seqcount_latch_init(9), raw_read_seqcount_latch(9), read_seqcount_latch(9), raw_read_seqcount_latch_retry(9), read_seqcount_latch_retry(9), raw_write_seqcount_latch(9), write_seqcount_latch_begin(9), write_seqcount_latch(9), write_seqcount_latch_end(9), seqlock_init(9), DEFINE_SEQLOCK(9), read_seqbegin(9), read_seqretry(9), write_seqlock(9), write_sequnlock(9), write_seqlock_bh(9), write_sequnlock_bh(9), write_seqlock_irq(9), write_sequnlock_irq(9), write_seqlock_irqsave(9), write_sequnlock_irqrestore(9), read_seqlock_excl(9), read_sequnlock_excl(9), read_sequnlock_excl_bh(9), read_seqlock_excl_irq(9), read_sequnlock_excl_irq(9), read_seqlock_excl_irqsave(9), read_sequnlock_excl_irqrestore(9), read_seqbegin_or_lock(9), need_seqretry(9), done_seqretry(9), read_seqbegin_or_lock_irqsave(9), done_seqretry_irqrestore(9), scoped_seqlock_read(9) β€” that's the whole friend group right there, go say hi πŸŒˆπŸ‘‘


and that's the page πŸ’– this gorgeous little doc lives in ./include/linux and was blessed into existence in October 2026 β€” stay slaying those kernel APIs bestie, mwah πŸ’‹βœ¨

πŸ“¦ where this page comes from