read_seqlock_excl_bh(9)
β¨ 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 aseqlock_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
- 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