RFR: 8343249: [Windows] Implement SpinPause [v4]
Julian Waters
jwaters at openjdk.org
Sun Sep 7 18:35:13 UTC 2025
On Mon, 18 Nov 2024 06:08:08 GMT, Julian Waters <jwaters at openjdk.org> wrote:
>> SpinPause is currently not implemented on any Windows platforms, due to a lack of access to assembly in the Microsoft compiler. The YieldProcessor macro can act as a stand in for this purpose, as it compiles down to a single pause instruction on x64 (Which seems to be all that one needs to implement SpinPause in HotSpot). I am less certain about the Windows/ARM64 implementation. There, YieldProcessor compiles down to dmb ishst; yield and I am unsure whether that is a correct SpinPause implementation. If need be, I can retract the ARM64 implementation and only have this for x86
>
> Julian Waters has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains five commits:
>
> - Merge branch 'openjdk:master' into patch-13
> - Merge branch 'master' into patch-13
> - Swap to handwritten assembly to implement SpinPause in os_windows_aarch64.cpp
> - YieldProcessor in os_windows_aarch64.cpp
> - 8343249
Sorry for leaving this to wait for so long. I'm not sure what to benchmark this with though, not sure if JMH is suitable for this, and I'm not very familiar with JMH anyway
-------------
PR Comment: https://git.openjdk.org/jdk/pull/21781#issuecomment-3263960294
More information about the hotspot-runtime-dev
mailing list