RFR: 8253469: ARM32 Zero: replace usages of __sync_synchronize() with OrderAccess::fence [v3]

David Holmes dholmes at openjdk.java.net
Fri Sep 25 05:22:24 UTC 2020


On Thu, 24 Sep 2020 10:28:38 GMT, Aleksey Shipilev <shade at openjdk.org> wrote:

>> In `atomic_bsd_zero.hpp` and `atomic_linux_zero.hpp` there are uses of __sync_synchronize(). However,
>> `orderAccess_*_zero.hpp` calls the kernel helper, because:
>> /*
>>  * ARM Kernel helper for memory barrier.
>>  * Using __asm __volatile ("":::"memory") does not work reliable on ARM
>>  * and gcc __sync_synchronize(); implementation does not use the kernel
>>  * helper for all gcc versions so it is unreliable to use as well.
>>  */
>> 
>> We need to clean this up to use `OrderAccess::fence()` to gain access to the kernel helper.
>> 
>> This depends on JDK-8253464 being fixed first.
>> 
>> Attention @bulasevich.
>> 
>> Testing:
>>  - [x] ARM32 Zero jcstress
>>  - [x] Mac OS x86_64 Zero jcstress
>
> Aleksey Shipilev has updated the pull request with a new target base due to a merge or a rebase. The pull request now
> contains two commits:
>  - Add comments
>  - 8253469: ARM32 Zero: replace usages of __sync_synchronize() with OrderAccess::fence

Changes seem fine to me. Good to have barriers handled only in OrderAccess.

-------------

Marked as reviewed by dholmes (Reviewer).

PR: https://git.openjdk.java.net/jdk/pull/298


More information about the hotspot-runtime-dev mailing list