On Wed Jul 29, 2026 at 6:18 PM BST, Paul E. McKenney wrote:
On Wed, Jul 29, 2026 at 11:45:40AM +0200, Philipp Stanner wrote:
rcu_barrier() is a frequently used C function which is always safe to be called.
Just checking... Here "always safe" means only from task level, with BH, preemption, and interrupts all enabled, correct?
In contrast, if you do this:
preempt_disable(); rcu_barrier(); preempt_enable();
the results won't be safe.
This is same for all sleepable functions. In order to avoid having to mark all sleeping function unsafe, we've decided that sleeping from non-preemptable context is "safe", but is a bug regardless.
Best, Gary