[concurrency-interest] Suggestion: .hardGet() for atomic variables
vitalyd at gmail.com
Thu Jan 19 16:42:13 EST 2012
Failed cas won't write anything to cache (afterall you didn't modify
anything). However, it does achieve same memory fencing/ordering as a
successful cas. On x86/64 that's because the cmpxchg instruction is
prefixed with LOCK, which by itself makes the instruction serializing
irrespective of whether the cmpxchg succeeds.
Also, small addendum - processor doesn't always issue a RFO (request for
ownership) before writing - if the cache line is in exclusive state in the
writing processor, it doesn't need to do that.
Also Doug Lea has a version of seqlock in his CVS repo for jsr166e - you
can take a look at it for details. I'll tell you that there is no funny
business there with dummy cas operations - he trusts volatile reads :).
Sent from my phone
On Jan 19, 2012 4:05 PM, "Ruslan Cheremin" <cheremin at gmail.com> wrote:
> I think, it depends on what you name "write". Failed CAS will be "like
> write" in sense of cache coherence traffic -- at least AFAIK -- it
> will request cache line to be in M state (read-for-update), so if
> cache line was in some other core's cache -- it will be invalidated.
> But failed CAS does not really update cache line value, so it seems
> like writeback to main memory not needed. I do not know, does current
> CPUs actually optimize this writeback.
> 2012/1/20 Raph Frank <raphfrk at gmail.com>:
> > On Thu, Jan 19, 2012 at 8:48 PM, Ruslan Cheremin <cheremin at gmail.com>
> >> current == value you've just read by .get() few lines ago.
> > Ahh, right.
> > For references, would .compareAndSet(null, null), also add in the
> > Does a compare and set that fails to update count as a write, or just a
> > _______________________________________________
> > Concurrency-interest mailing list
> > Concurrency-interest at cs.oswego.edu
> > http://cs.oswego.edu/mailman/listinfo/concurrency-interest
> Concurrency-interest mailing list
> Concurrency-interest at cs.oswego.edu
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Concurrency-interest