Integrated: 8322535: Change default AArch64 SpinPause instruction

Fredrik Bredberg fbredberg at openjdk.org
Tue Feb 6 13:28:06 UTC 2024


On Mon, 15 Jan 2024 16:25:08 GMT, Fredrik Bredberg <fbredberg at openjdk.org> wrote:

> 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.

This pull request has now been integrated.

Changeset: f356970b
Author:    Fredrik Bredberg <fbredberg at openjdk.org>
Committer: Coleen Phillimore <coleenp at openjdk.org>
URL:       https://git.openjdk.org/jdk/commit/f356970b8930c6ec122d797d84503a6e86d67526
Stats:     2 lines in 1 file changed: 0 ins; 0 del; 2 mod

8322535: Change default AArch64 SpinPause instruction

Reviewed-by: eastigeevich, eosterlund, coleenp

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

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


More information about the hotspot-dev mailing list