Messages in this thread | | | Date | Thu, 6 Jun 2019 17:28:55 +0800 | From | Herbert Xu <> | Subject | Re: rcu_read_lock lost its compiler barrier |
| |
On Thu, Jun 06, 2019 at 02:06:19AM -0700, Paul E. McKenney wrote: > > Or is your point instead that given the initial value of "a" being > zero and the value stored to "a" being one, there is no way that > any possible load and store tearing (your slicing and dicing) could > possibly mess up the test of the value loaded from "a"?
Exactly. If you can dream up of a scenario where the compiler can get this wrong I'm all ears.
> > But I do concede that in the general RCU case you must have the > > READ_ONCE/WRITE_ONCE calls for rcu_dereference/rcu_assign_pointer. > > OK, good that we are in agreement on this part, at least! ;-)
Well only because we're allowing crazy compilers that can turn a simple word-aligned word assignment (a = b) into two stores.
Cheers, -- Email: Herbert Xu <herbert@gondor.apana.org.au> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
| |