RFR: 8016538: volatile double access via Unsafe.cpp is not atomic

David Holmes david.holmes at oracle.com
Tue Jul 9 17:40:07 PDT 2013


Hi Yumin,

On 10/07/2013 4:32 AM, Yumin Qi wrote:
> Hi,
>
>    Can i have your codereview of this change:
>    Unsafe_Get[SET]DoubleVolatile are not atomic on 32bit x86 linux
> caused test for
> org.openjdk.concurrent.torture.tests.atomicity.primitives.reflect.DoubleAtomicityTest
> failed.
>    The fix is using same treatment for jdouble as for jlong. Tests
> passed on failed test case, vm quick tests. It only happens on linux
> 32bit platform, on solaris, the inlined code be compiled into code of
> using fldl/fstpl which are atomic instructions.

Why is this not also a problem on Solaris? What does the Solaris 
compiler generate for

inline jdouble  OrderAccess::load_acquire(volatile jdouble* p) { return 
*p; }

>    Contributed by: dholmes

Guess that means I can't Review it :)

David
-----

>    URL: http://cr.openjdk.java.net/~minqi/8016538/01
>
>    Thanks
>    Yumin


More information about the hotspot-runtime-dev mailing list