Re: Internal vs. external barriers (was: Re: Interesting LKMM litmus test)

From: Alan Stern
Date: Fri Jan 20 2023 - 15:36:29 EST


On Fri, Jan 20, 2023 at 11:20:32AM -0800, Paul E. McKenney wrote:
> On Fri, Jan 20, 2023 at 01:37:51PM -0500, Alan Stern wrote:
> > srcu_read_unlock() does not need a full smp_mb().
>
> That is quite possible, and that is what we are looking into. And testing
> thus far agrees with you. But the grace-period ordering constraints
> are quite severe, so this requires careful checking and severe testing.

If you're interested, I can provide a simple argument to show that the
Fundamental Law of RCU would continue to hold with only a release fence.
There is an added requirement: merely that synchronize_srcu() must have
an smp_mb() somewhere after its final read of the unlock counters --
which your version of the algorithm already has.

Alan