On Mon, 6 Jul 2026 16:54:22 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 incrementally with one additional > commit since the last revision: > > Use getVolatile instead of getAcquire src/java.base/share/classes/java/util/concurrent/LinkedTransferQueue.java line 392: > 390: > 391: final Thread getAcqWaiter() { > 392: return (Thread)WAITER.getAcquire(this); @DougLea Are you OK with this change, or should we make the access even stronger? ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/31465#discussion_r3473470299
