On Tue, 13 Oct 2026 18:13:08 GMT, Mat Carter <[email protected]> wrote:
>> 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 with a new target base due to a merge > or a rebase. The incremental webrev excludes the unrelated changes brought in > by the merge/rebase. The pull request contains five additional commits since > the last revision: > > - Add non-LSE variant regression tests > - Need the derived class to also use the new accessor > - Merge branch 'master' into macarte/nolse > - Use getVolatile instead of getAcquire > - With -UseLSE the Starvation test on Windows timeouts close to 100% whereas > this only happens on Linux on larger machines with many cores. The issue is > that the LDR following the CAS can execute before the STLXR breaking the > Dekker protocol, replacing with LADR by using getAcquire the solves the issue > as it won't be reordered before the STLXR. I'm about to approve this PR, I just need to wait for some stress tests to come back clean. ------------- PR Review: https://git.openjdk.org/jdk/pull/31465#pullrequestreview-5518598883
