JDK-8186670 : Implement _onSpinWait() intrinsic for AArch64
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 10,17,18
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • OS: linux
  • CPU: aarch64
  • Submitted: 2017-08-23
  • Updated: 2022-09-22
  • Resolved: 2021-11-11
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 15 JDK 17 JDK 18
15.0.7Fixed 17.0.3Fixed 18 b24Fixed
Related Reports
CSR :  
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Sub Tasks
JDK-8275728 :  
Description
Implement _onSpinWait() intrinsic for AArch64

The intrinsic was not implemented. It makes sense to implement it using `yield` instuction.
Comments
Fix Request (15u) A backport of a configurable implementation of _onSpinWait() intrinsic to achieve parity with x86 which has it implemented. The risk of changes is low. By default it is off. Tested for fastdebug and release builds: - gtest: Passed - tier1...tier3: Passed except JDK-8261534 and JDK-8277488 - hotspot/jtreg/compiler/onSpinWait: Passed Applying the patch had issues to find proper positions. No code changes are needed after repositioning. Changes to globals_aarch64.hpp needed the new added options definitions to be converted from the new format to the old one. `vm.flagless` was removed from the new tests. Changes to vm_version_aarch64.cpp, instantiation of SpinWait, use C++11 syntax. They needed to be changed to C++03 syntax.
09-03-2022

A pull request was submitted for review. URL: https://git.openjdk.java.net/jdk15u-dev/pull/181 Date: 2022-02-23 15:43:41 +0000
23-02-2022

Fix Request (17u) Configurable 'java.lang.Thread.onSpinWait()' intrinsic implementation for AArch64. Applies cleanly. Other related issues are being backported: https://bugs.openjdk.java.net/browse/JDK-8277137 https://bugs.openjdk.java.net/browse/JDK-8277503 https://bugs.openjdk.java.net/browse/JDK-8278241
14-01-2022

A pull request was submitted for review. URL: https://git.openjdk.java.net/jdk17u-dev/pull/88 Date: 2022-01-13 12:43:18 +0000
13-01-2022

Changeset: 6954b98f Author: Evgeny Astigeevich <eastig@amazon.com> Committer: Paul Hohensee <phh@openjdk.org> Date: 2021-11-11 22:23:35 +0000 URL: https://git.openjdk.java.net/jdk/commit/6954b98f8faf29b6c2d13687a7a94e83302bdd85
11-11-2021

Rebased to latest consolidated repo http://cr.openjdk.java.net/~dchuyko/8186670/webrev.01/
28-11-2017

http://cr.openjdk.java.net/~dchuyko/8186670/webrev.00/
23-08-2017

http://cr.openjdk.java.net/~dchuyko/8186670/yield/spinwait.html
23-08-2017