RFR: 8261649: AArch64: Optimize LSE atomics in C++ code [v2]

Andrew Haley aph at openjdk.java.net
Thu Feb 18 16:49:00 UTC 2021


> Now that we have support for LSE atomics in C++ HotSpot source, we can generate much better code for them. In particular, the sequence we generate for CMPXCHG with a full two-way barrier using two DMBs is way suboptimal.
> 
> This patch:
> 
> Moves memory barriers from the atomic_linux_aarch64 file into the stubs.
> Rewrites the LSE versions of the stubs to be more efficient.
> Fixes a race condition in stub generation.
> Mostly leaves the pre-LSE stubs alone, except that I added a PRFM which according to kernel engineers improves performance.

Andrew Haley has updated the pull request incrementally with one additional commit since the last revision:

  Make things slightly less confusing

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

Changes:
  - all: https://git.openjdk.java.net/jdk/pull/2611/files
  - new: https://git.openjdk.java.net/jdk/pull/2611/files/23df4485..68ff88d9

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

  Stats: 21 lines in 1 file changed: 8 ins; 0 del; 13 mod
  Patch: https://git.openjdk.java.net/jdk/pull/2611.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/2611/head:pull/2611

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


More information about the hotspot-dev mailing list