lockdep_asse...read_lock_bh(9)
πΈ lockdep_asse...read_lock_bh β the Kernel API Manual, bestie edition πΈ
okay so this one lives in the Kernel API Manual and honestly the vibe is: "did you actually hold the lock or are you lying to me?" π
β¨ NAME β¨
lockdep_assert_in_rcu_read_lock_bh β literally goes WARN if you're not protected by rcu_read_lock_bh(). that's it. that's the whole job π«Ά
π¦ SYNOPSIS π¦
lockdep_assert_in_rcu_read_lock_bh
no args, no options, no drama. she's a function and she shows up exactly like that π
π DESCRIPTION π
So here's the tea β β this thing splats if lockdep is enabled and there is no rcu_read_lock_bh in effect. Like, full-on screaming into the kernel log. not subtle. not cute. but necessary, ngl π
And here's the part people get wrong every single time, so pay attention bestie π: local_bh_disable and friends do not suffice here. nope. not even a little. an actual rcu_read_lock_bh is required.
so if you're sitting there like "but I disabled bh tho??" β ma'am. that is not the same thing. the check wants the real one. periodt π
π SEE ALSO π
the whole extended friend group, in the order they were introduced π
same_state_synchronize_rcu(9)cond_resched_tasks_rcu_qs(9)rcu_softirq_qs_periodic(9)RCU_LOCKDEP_WARN(9)lockdep_assert_in_rcu_read_lock(9)lockdep_assert_in_rcu_read_lock_sched(9)lockdep_assert_in_rcu_reader(9)unrcu_pointer(9)RCU_INITIALIZER(9)rcu_assign_pointer(9)rcu_replace_pointer(9)rcu_access_pointer(9)rcu_dereference_check(9)rcu_dereference_bh_check(9)rcu_dereference_sched_check(9)rcu_dereference_all_check(9)rcu_dereference_protected(9)rcu_dereference(9)rcu_dereference_bh(9)rcu_dereference_sched(9)rcu_dereference_all(9)rcu_pointer_handoff(9)rcu_read_lock(9)rcu_read_unlock(9)rcu_read_lock_bh(9)rcu_read_unlock_bh(9)rcu_read_lock_sched(9)rcu_read_unlock_sched(9)RCU_INIT_POINTER(9)RCU_POINTER_INITIALIZER(9)kfree_rcu(9)kfree_rcu_mightsleep(9)kfree_rcu_nolock(9)rcu_head_init(9)rcu_head_after_call_rcu(9)
also shoutout to where she actually lives: the kernel file ./include/linux/rcupdate.h β that's her address, don't lose it π‘
and that's the whole page, bestie β¨ this icon was brought to you by the good people at ./include/linux, dated October 2026, and filed under lockdep_asse...read_lock_bh(9) in the Kernel API Manual. slay, stay locked, and please use the actual rcu_read_lock_bh ππ
π¦ 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