RFR: 8328876: Rework [AArch64] Use "dmb.ishst + dmb.ishld" for release barrier

kuaiwei duke at openjdk.org
Mon Mar 25 06:58:36 UTC 2024


The origin patch for https://bugs.openjdk.org/browse/JDK-8324186 has 2 issues:
1 It show regression in some platform, like Apple silicon in mac os
2 Can not handle instruction sequence like "dmb.ishld; dmb.ishst; dmb.ishld; dmb.ishld"

It can be fixed by:
1 Enable AlwaysMergeDMB by default, only disable it in architecture we can see performance improvement (N1 or N2)
2 Check the special pattern and merge the subsequent dmb.

It also fix a bug when code buffer is expanding, st/ld/dmb can not be merged. I added unit tests for these.

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

Commit messages:
 - 8328876: Rework [AArch64] Use "dmb.ishst + dmb.ishld" for release barrier

Changes: https://git.openjdk.org/jdk/pull/18467/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=18467&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8328876
  Stats: 343 lines in 9 files changed: 330 ins; 0 del; 13 mod
  Patch: https://git.openjdk.org/jdk/pull/18467.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/18467/head:pull/18467

PR: https://git.openjdk.org/jdk/pull/18467


More information about the hotspot-dev mailing list