Re: XDP socket rings, and LKMM litmus tests

From: Alan Stern
Date: Thu Mar 04 2021 - 10:36:52 EST


On Wed, Mar 03, 2021 at 09:04:07PM -0800, Paul E. McKenney wrote:
> On Wed, Mar 03, 2021 at 10:21:01PM -0500, Alan Stern wrote:
> > On Wed, Mar 03, 2021 at 02:03:48PM -0800, Paul E. McKenney wrote:
> > > On Wed, Mar 03, 2021 at 03:22:46PM -0500, Alan Stern wrote:

> > > > > And I cannot immediately think of a situation where
> > > > > this approach would break that would not result in a data race being
> > > > > flagged. Or is this yet another failure of my imagination?
> > > >
> > > > By definition, an access to a local variable cannot participate in a
> > > > data race because all such accesses are confined to a single thread.
> > >
> > > True, but its value might have come from a load from a shared variable.
> >
> > Then that load could have participated in a data race. But the store to
> > the local variable cannot.
>
> Agreed. My thought was that if the ordering from the initial (non-local)
> load mattered, then that initial load must have participated in a
> data race. Is that true, or am I failing to perceive some corner case?

Ordering can matter even when no data race is involved. Just think
about how much of the memory model is concerned with ordering of
marked accesses, which don't participate in data races unless there is
a conflicting plain access somewhere.

Alan