On Thu, 18 Jun 2026 17:43:16 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).
>
> Understood, I'll forgo the intrinsic approach and simply switch to using 
> getVolatile().  Are there specific [micro]benchmarks that you would like to 
> see the results from; what is the minimum set of OS/Architecture combinations 
> that will satisfy reviewers?

> @macarte Hi, Thank you for your contribution. I believe you have fixed the 
> issue you described. I tested the issue described in 
> https://bugs.openjdk.org/browse/JDK-8387644 with this patch, and the problem 
> still exists. Should we continue fixing it in this PR, or should we open a 
> new PR for the fix?

@zifeihan  - lets create a new issue, the fix could be less contentious than 
this one, and I wouldn't want this work to block other fixes

-------------

PR Comment: https://git.openjdk.org/jdk/pull/31465#issuecomment-5196639959

Reply via email to