JDK-8273380 : ARM32: Default to {ldrexd,strexd} in StubRoutines::atomic_{load|store}_long
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: runtime
  • Affected Version: 11,17,18
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2021-09-06
  • Updated: 2022-11-22
  • Resolved: 2021-09-24
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 17 JDK 18
17.0.6Fixed 18 b17Fixed
Related Reports
Relates :  
Description
Current ARM32 is one of few remaining uses of `os::is_MP`, the rest is removed by JDK-8188764. There are some interesting bugs in OS/libc that might give incorrect `os::is_MP` sometimes, e.g. in containers. Instead of risking it, we can default to {ldrexd,strexd} for ARMv7 (which always have them), and leave the `os::is_MP` path for ARMv6 (for which this is the only remaining way to load the 64-bit long).
Comments
Fix Request (17u) Improves ARM32 reliability. Applies cleanly. Light testing on ARM32 passes (see 17u PR for details).
21-11-2022

A pull request was submitted for review. URL: https://git.openjdk.org/jdk17u-dev/pull/909 Date: 2022-11-21 14:02:51 +0000
21-11-2022

Changeset: 718eff2b Author: Aleksey Shipilev <shade@openjdk.org> Date: 2021-09-24 15:31:35 +0000 URL: https://git.openjdk.java.net/jdk/commit/718eff2bb6e938440df9f7b982ef6d2f4060a759
24-09-2021