One potential issue with concurrent execution of RCU callbacks...

From: Paul E. McKenney
Date: Tue Dec 08 2020 - 09:58:52 EST


Hello, Frederic,

Boqun just asked if RCU callbacks ran in BH-disabled context to avoid
concurrent execution of the same callback. Of course, this raises the
question of whether a self-posting callback can have two instances of
itself running concurrently while a CPU is in the process of transitioning
between softirq and rcuo invocation of callbacks.

I believe that the answer is "no" because BH-disabled context is
an implicit RCU read-side critical section. Therefore, the initial
invocation of the RCU callback must complete in order for a new grace
period to complete, and a new grace period must complete before the
second invocation of that same callback to start.

Does that make sense, or am I missing something?

Thanx, Paul