> With -UseLSE the Starvation test on Windows ARM64 timeouts close to 100% > whereas this only happens on Linux ARM64 on larger machines with many cores. > The issue is that C2 outputs an LDR following the CAS in LinkedTransferQueue > which can execute before the STLXR breaking the Dekker protocol. > > Replacing the LDR with LADR by using getAcquire solves the issue as it won't > be reordered before the STLXR. This does impact the +UseLSE case as the LADR > was not necessary and is slightly more expensive than LDR. But to handle > this case would require larger changes to Hotspot > > Starvation test passes on Windows ARM64 and Linux ARM64, with no regressions > on tier1 > > --------- > - [x] I confirm that I make this contribution in accordance with the [OpenJDK > Interim AI Policy](https://openjdk.org/legal/ai).
Mat Carter has updated the pull request incrementally with one additional commit since the last revision: Use getVolatile instead of getAcquire ------------- Changes: - all: https://git.openjdk.org/jdk/pull/31465/files - new: https://git.openjdk.org/jdk/pull/31465/files/e5a4e2ca..536861f4 Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=31465&range=01 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=31465&range=00-01 Stats: 3 lines in 1 file changed: 0 ins; 0 del; 3 mod Patch: https://git.openjdk.org/jdk/pull/31465.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/31465/head:pull/31465 PR: https://git.openjdk.org/jdk/pull/31465
