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

Aleksey Shipilev shade at openjdk.java.net
Tue Sep 22 13:57:53 UTC 2020


> 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:
>  - [ ] ARM32 Zero jcstress
>  - [ ] Mac OS x86_64 Zero jcstress

Aleksey Shipilev has updated the pull request incrementally with one additional commit since the last revision:

  Add comments

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

Changes:
  - all: https://git.openjdk.java.net/jdk/pull/298/files
  - new: https://git.openjdk.java.net/jdk/pull/298/files/74324d18..041f9d78

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=298&range=01
 - incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=298&range=00-01

  Stats: 4 lines in 2 files changed: 2 ins; 0 del; 2 mod
  Patch: https://git.openjdk.java.net/jdk/pull/298.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/298/head:pull/298

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


More information about the hotspot-runtime-dev mailing list