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

Reply via email to