All, Here is the patch that change the meaning of the atomics to make them always return the previous value (similar to sync_fetch_and_<*>). I tested this with the following atomics: OS X, gcc style intrinsics and AMD64.
I did not change the base assembly files used when GCC style assembly operations are not supported. If someone feels like fixing them, feel free. Paul, I know you have a pretty diverse range computers. Can you try to compile and run a “make check” with the following patch? George.
atomics.patch
Description: Binary data
On Jul 30, 2014, at 15:21 , Nathan Hjelm <hje...@lanl.gov> wrote: > > That is what I would prefer. I was trying to not disturb things too > much :). Please bring the changes over! > > -Nathan > > On Wed, Jul 30, 2014 at 03:18:44PM -0400, George Bosilca wrote: >> Why do you want to add new versions? This will lead to having two, almost >> identical, sets of atomics that are conceptually equivalent but different >> in terms of code. And we will have to maintained both! >> I did a similar change in a fork of OPAL in another project but instead of >> adding another flavor of atomics, I completely replaced the available ones >> with a set returning the old value. I can bring the code over. >> George. >> >> On Tue, Jul 29, 2014 at 5:29 PM, Paul Hargrove <phhargr...@lbl.gov> wrote: >> >> On Tue, Jul 29, 2014 at 2:10 PM, Nathan Hjelm <hje...@lanl.gov> wrote: >> >> Is there a reason why the >> current implementations of opal atomics (add, cmpset) do not return >> the >> old value? >> >> Because some CPUs don't implement such an atomic instruction? >> >> On any CPU one *can* certainly synthesize the desired operation with an >> added read before the compare-and-swap to return a value that was >> present at some time before a failed cmpset. That is almost certainly >> sufficient for your purposes. However, the added load makes it >> (marginally) more expensive on some CPUs that only have the native >> equivalent of gcc's __sync_bool_compare_and_swap(). >> >> -Paul >> -- >> Paul H. Hargrove phhargr...@lbl.gov >> Future Technologies Group >> Computer and Data Sciences Department Tel: +1-510-495-2352 >> Lawrence Berkeley National Laboratory Fax: +1-510-486-6900 >> _______________________________________________ >> devel mailing list >> de...@open-mpi.org >> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel >> Link to this post: >> http://www.open-mpi.org/community/lists/devel/2014/07/15328.php > >> _______________________________________________ >> devel mailing list >> de...@open-mpi.org >> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel >> Link to this post: >> http://www.open-mpi.org/community/lists/devel/2014/07/15369.php > > _______________________________________________ > devel mailing list > de...@open-mpi.org > Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel > Link to this post: > http://www.open-mpi.org/community/lists/devel/2014/07/15370.php