Print

Print


Just to add to he noise. Quite true not all atomics are built the same but 
it's how you build them and how you use them can make a big diffrenece. 
So, let's take x86. A strong atomic store is typically built as:

fence(); store(); fence()

The fence() is the problematic thing here. It all depends on the 
architecture. A fence requires that all load and stores be committed 
before continuing. This usually implies discarding all speculative memory 
fetches. That can be very expensive on some architectures (and from my 
understanding even on some x86 variants). Depending on the atomic 
requirements it may very well be better to simply obtain a lock.

Andy

On Wed, 15 Jul 2015, Brian Bockelman wrote:

> Hi @esindril -
>
> Just to clear up misconceptions.  There is no overhead for the atomic I suggested on platforms besides ARM (and there it is pretty small compared to a lock).
>
> Not all synchronization primitives are built the same!
>
> Brian
>
> ---
> Reply to this email directly or view it on GitHub:
> https://github.com/xrootd/xrootd/pull/251#issuecomment-121630434


---
Reply to this email directly or view it on GitHub:
https://github.com/xrootd/xrootd/pull/251#issuecomment-121680704

########################################################################
Use REPLY-ALL to reply to list

To unsubscribe from the XROOTD-DEV list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=XROOTD-DEV&A=1