On Tue, 9 Jun 2026 18:49:34 GMT, Amit Kumar <[email protected]> wrote:

>> Introduces Virtual Threads on s390x. 
>> 
>> Additionally contains changes from these Issues as well: 
>> 8338383: Implement JEP 491: Synchronize Virtual Threads without Pinning
>> 8369238: Allow virtual thread preemption on some common class initialization 
>> paths
>> 
>> Testing: 
>> - [x] fastdebug : tier1  JTREG_TEST_THREAD_FACTORY=Virtual
>> - [x] release : tier1 JTREG_TEST_THREAD_FACTORY=Virtual
>> - [x] fastdebug: jdk_loom JTREG_TEST_THREAD_FACTORY=Virtual  
>> -XX:+TieredCompilation -XX:TieredStopAtLevel=1  
>> -XX:+UnlockExperimentalVMOptions -XX:+VerifyContinuations
>> - [x] fastdebug : jdk_loom  JTREG_TEST_THREAD_FACTORY=Virtual  
>> -XX:-TieredCompilation -Xcomp -XX:+UnlockExperimentalVMOptions 
>> -XX:+VerifyContinuations
>> - [x] fastdebug : hotspot_loom JTREG_TEST_THREAD_FACTORY=Virtual + -Xint
>> - [x] fastdebug : hotspot_loom JTREG_TEST_THREAD_FACTORY=Virtual  
>> -XX:+TieredCompilation -XX:TieredStopAtLevel=1  
>> -XX:+UnlockExperimentalVMOptions -XX:+VerifyContinuations 
>> - [x] fastdebug : hotspot_loom JTREG_TEST_THREAD_FACTORY=Virtual  
>> -XX:+TieredCompilation -XX:TieredStopAtLevel=1 -Xcomp 
>> -XX:+UnlockExperimentalVMOptions -XX:+VerifyContinuations
>> 
>> ---------
>> - [x] I confirm that I make this contribution in accordance with the 
>> [OpenJDK Interim AI Policy](https://openjdk.org/legal/ai).
>
> Amit Kumar has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   leftover comment

I've only looked at the non-S390-specific source files changes. I have one 
concern below.

Thanks

src/hotspot/share/runtime/continuationFreezeThaw.cpp line 512:

> 510: #ifdef _LP64
> 511:   // on s390, alignment is of 8 byte instead of 16 byte like other 
> architectures. So for us 0xf check fails
> 512:   // and decrements _bottom_address which results in 
> assert(FKind::frame_bottom(f) <= _bottom_address) failure.

Suggestion:

  // On S390 alignment is 8 bytes instead of 16 bytes like other architectures.

src/hotspot/share/runtime/continuationFreezeThaw.cpp line 534:

> 532: #else
> 533:   static const int doYield_stub_frame_size = frame::metadata_words;
> 534: #endif

I don't think this correct for ZERO. IIUC PPC64 will still be set when ZERO is 
defined.

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

PR Review: https://git.openjdk.org/jdk/pull/31441#pullrequestreview-4463109425
PR Review Comment: https://git.openjdk.org/jdk/pull/31441#discussion_r3384367438
PR Review Comment: https://git.openjdk.org/jdk/pull/31441#discussion_r3384377674

Reply via email to