Re: [PATCH tip/core/rcu 01/21] doc: READ_ONCE() now implies smp_barrier_depends()

From: Peter Zijlstra
Date: Mon Dec 04 2017 - 16:55:08 EST


On Mon, Dec 04, 2017 at 10:52:15AM -0800, Paul E. McKenney wrote:
> On Mon, Dec 04, 2017 at 03:38:56PM +0000, David Howells wrote:
> > Paul E. McKenney <paulmck@xxxxxxxxxxxxxxxxxx> wrote:
> >
> > > - Q = READ_ONCE(P); smp_read_barrier_depends(); D = READ_ONCE(*Q);
> > > + Q = READ_ONCE(P); D = READ_ONCE(*Q);
> > >
> > > the CPU will issue the following memory operations:
> > >
> > > Q = LOAD P, D = LOAD *Q
> >
> > The CPU may now issue two barriers in addition to the loads, so should we show
> > this? E.g.:
> >
> > Q = LOAD P, BARRIER, D = LOAD *Q, BARRIER
>
> Good point! How about as shown in the updated patch below?

Humm, I thought the idea was to completely remove read_barrier_depends
from the lkmm and memory-barriers.txt, making it an Alpha implementation
detail.