RFR: 8016538: volatile double access via Unsafe.cpp is not atomic
Vladimir Kozlov
vladimir.kozlov at oracle.com
Tue Jul 9 14:16:36 PDT 2013
Hi Yumin,
load_acquire() could be more expensive with this changes even for 64bit
VM because you first loading from volatile address into local variable.
Please, check what code is generated in 64-bit with your changes.
Why you did not use release_store_fence() in
OrderAccess::release_store_fence() and where is cast to jlong* ?
Thanks,
Vladimir
On 7/9/13 11: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.
>
> Contributed by: dholmes
>
> URL: http://cr.openjdk.java.net/~minqi/8016538/01
>
> Thanks
> Yumin
More information about the hotspot-runtime-dev
mailing list