Integrated: 8253469: ARM32 Zero: replace usages of __sync_synchronize() with OrderAccess::fence
Aleksey Shipilev
shade at openjdk.java.net
Fri Sep 25 10:16:32 UTC 2020
On Tue, 22 Sep 2020 12:41:02 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
This pull request has now been integrated.
Changeset: f62eefc0
Author: Aleksey Shipilev <shade at openjdk.org>
URL: https://git.openjdk.java.net/jdk/commit/f62eefc0
Stats: 10 lines in 2 files changed: 4 ins; 0 del; 6 mod
8253469: ARM32 Zero: replace usages of __sync_synchronize() with OrderAccess::fence
Reviewed-by: dholmes
-------------
PR: https://git.openjdk.java.net/jdk/pull/298
More information about the hotspot-runtime-dev
mailing list