RFR: 8366441: AArch64: Support WFET in OnSpinWait [v4]
Ruben
duke at openjdk.org
Fri Feb 27 23:32:45 UTC 2026
> 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+.
Ruben has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 11 commits:
- Fix handling platform-specific default values of OnSpinWaitInstCount
- Set default OnSpinWaitDelay to 40 and clarify it is the minimal delay
- Merge from mainline
- Set default OnSpinWaitDelay to 100
- Address review comments
- Apply PR review "Suggested changes" from @theRealAph
- Merge from mainline
- Fix bsd_aarch64 build
- Update
- Address review comments
- Fix test
- Mark the support experimental
- Remove changes in src/hotspot/os_cpu/bsd_aarch64
- Merge from mainline
- ... and 1 more: https://git.openjdk.org/jdk/compare/4e15a4ad...da95b197
-------------
Changes: https://git.openjdk.org/jdk/pull/27030/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=27030&range=03
Stats: 1296 lines in 15 files changed: 157 ins; 2 del; 1137 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