RFR: 8366441: AArch64: Support WFET in OnSpinWait

Ruben duke at openjdk.org
Wed Dec 10 13:15:46 UTC 2025


Implement OnSpinWait based on WFET - wait for event with timeout:
 - introduce OnSpinWaitDelay - the OnSpinWait time in nanoseconds;
 - the OnSpinWaitInstCount is expected to be 1 when WFET is used;
 - the waiting loop is followed by SB - to ensure following instructions aren't speculated until wait is finished;
 - the timer register is read via the self-synchronized view CNTVCTSS_EL0 to prevent the read being hoisted out of the loop.

The WFET and CNTVCTSS_EL0 read are added to aarch64-asmtest.py as hex values - using the instruction mnemonics would require support of -march=armv9-2.a, and consequently, the binutils 2.36+.

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

Commit messages:
 - Update
 - Merge from mainline
 - 8366441: AArch64: Support WFET in OnSpinWait

Changes: https://git.openjdk.org/jdk/pull/27030/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=27030&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8366441
  Stats: 1272 lines in 14 files changed: 153 ins; 1 del; 1118 mod
  Patch: https://git.openjdk.org/jdk/pull/27030.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/27030/head:pull/27030

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


More information about the hotspot-dev mailing list