RFR: 8324186: AARCH64: Use "dmb.ishst+dmb.ishld" for release barrier

Fei Yang fyang at openjdk.org
Mon Jan 22 04:02:28 UTC 2024


On Mon, 22 Jan 2024 01:58:32 GMT, kuaiwei <duke at openjdk.org> wrote:

> Details is https://mail.openjdk.org/pipermail/hotspot-compiler-dev/2024-January/071921.html.
> Using a combined dmb.ish for release barrier will introduce a heavy storeload barrier. Use "dmb.ishst+dmb.ishld" pair instead, we can gain performance improvement on N1 and N2 architecture. The benchmark is test/micro/org/openjdk/bench/vm/compiler/FinalFieldInitialize.java
> Run with ParallelGC to minimalize impact of gc barrier.
> 
> make test TEST="micro:org.openjdk.bench.vm.compiler.FinalFieldInitialize" MICRO="VM_OPTIONS=-XX:+UseParallelGC"
> ...
> FinalFieldInitialize.testAllocWithFinal  thrpt    9  1411.601 ?  6.546  ops/s
> 
> Without the patch
> 
> FinalFieldInitialize.testAllocWithFinal  thrpt    9  1214.575 ? 14.217  ops/s

I wonder if this was tested on other vendors' hardware? I witnessed some negative impact at least on HiSilicon TSV110 running the same JMH. So I guess it might be safer to go as a vendor-specific change.


Before:
Benchmark                                 Mode  Cnt    Score    Error  Units
FinalFieldInitialize.testAllocWithFinal  thrpt    9  840.267 ? 69.505  ops/s

After:
Benchmark                                 Mode  Cnt    Score     Error  Units
FinalFieldInitialize.testAllocWithFinal  thrpt    9  732.791 ?  47.198  ops/s

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

PR Review: https://git.openjdk.org/jdk/pull/17511#pullrequestreview-1835605044


More information about the hotspot-dev mailing list