RFR: 8322535: Change default AArch64 SpinPause instruction [v2]
Fredrik Bredberg
fbredberg at openjdk.org
Mon Feb 5 15:29:36 UTC 2024
> The Java options OnSpinWaitInst lets you choose which AArch64 instruction should be used in `SpinPause()`. Valid values are "none", "nop", "isb" and "yield". Today the default value for OnSpinWaitInst is unfortunately "none".
>
> However some CPUs changes the default SpinPause instruction to something better if the user hasn't used the OnSpinWaitInst option. For instance if you run a Neoverse N1, N2, V1 or V2, the default SpinPause instruction will be changed to "isb". After doing some measurements on Apple's M1-M3 CPUs it also seems like "isb" is the best yielding instruction on on those CPUs.
>
> This PR changes the default SpinPause instruction to "yield" on all AArch64 platforms except on Apple's M1, M2 and M3 CPUs on which the default value will be "isb".
>
> Tested tier1-tier7 successfully on linux-aarch64 and macosx-aarch64.
Fredrik Bredberg has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains four additional commits since the last revision:
- Removed isb as default SpinPause instruction for Apple silicon
- Merge branch 'master' into 8322535_default_spinpause_inst
- Merge branch 'master' into 8322535_default_spinpause_inst
- 8322535: Change default AArch64 SpinPause instruction
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/17430/files
- new: https://git.openjdk.org/jdk/pull/17430/files/21fb5d26..c839a3da
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=17430&range=01
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=17430&range=00-01
Stats: 51437 lines in 2089 files changed: 24772 ins; 12372 del; 14293 mod
Patch: https://git.openjdk.org/jdk/pull/17430.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/17430/head:pull/17430
PR: https://git.openjdk.org/jdk/pull/17430
More information about the hotspot-dev
mailing list