On 2017-09-06 15:12:13 -0400, Tom Lane wrote:
> Andres Freund <andres@anarazel.de> writes:
> > On 2017-09-06 14:31:26 -0400, Tom Lane wrote:
> >> However, if that's the reasoning, why don't we make all of these
> >> use simple reads? It seems unlikely that a locked read is free.
>
> > We don't really use locked reads? All the _atomic_ wrapper forces is an
> > actual read from memory rather than a register.
>
> It looks to me like two of the three implementations promise no such
> thing.
They're volatile vars, so why not?
> Even if they somehow do, it hardly matters given that the cmpxchg loop
> would be self-correcting.
Well, in this one instance maybe, hardly in others.
> Mostly, though, I'm looking at the fallback pg_atomic_read_u64_impl
> implementation (with a CAS), which seems far more expensive than can
> be justified for this.
What are you suggesting as an alternative?
- Andres