RFR: 8367993: G1: Speed up ConcurrentMark initialization [v3]

Thomas Schatzl tschatzl at openjdk.org
Mon Jan 12 13:34:52 UTC 2026


On Fri, 9 Jan 2026 08:42:06 GMT, Stefan Johansson <sjohanss at openjdk.org> wrote:

>> Leo Korinth has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 564 commits:
>> 
>>  - Merge branch '8373253' into 8367993
>>  - Merge branch 'master' into _8373253
>>  - Merge branch 'master' into _8367993
>>  - 8366058: Outdated comment in WinCAPISeedGenerator
>>    
>>    Reviewed-by: mullan
>>  - 8357258: x86: Improve receiver type profiling reliability
>>    
>>    Reviewed-by: kvn, vlivanov
>>  - 8373704: Improve "SocketException: Protocol family unavailable" message
>>    
>>    Reviewed-by: lucy, jpai
>>  - 8373722: [TESTBUG] compiler/vectorapi/TestVectorOperationsWithPartialSize.java fails intermittently
>>    
>>    Reviewed-by: jiefu, jbhateja, erfang, qamai
>>  - 8343809: Add requires tag to mark tests that are incompatible with exploded image
>>    
>>    Reviewed-by: alanb, dholmes
>>  - 8374465: Spurious dot in documentation for JVMTI ClassLoad
>>    
>>    Reviewed-by: kbarrett
>>  - 8374317: Change GCM IV size to 12 bytes when encrypting/decrypting TLS session ticket
>>    
>>    Reviewed-by: djelinski, mpowers, ascarpino
>>  - ... and 554 more: https://git.openjdk.org/jdk/compare/2aa8aa4b...28ccbb68
>
> src/hotspot/share/gc/g1/g1Policy.cpp line 744:
> 
>> 742:   if (!_g1h->concurrent_mark()->is_fully_initialized()) {
>> 743:     return false;
>> 744:   }
> 
> Is this needed? The `in_progress()` check below makes sure to only check the cm_thread when fully initialized.

And this can never return true during initialization as no GC can have happened so that we end up in the Prepare Mixed GC

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

PR Review Comment: https://git.openjdk.org/jdk/pull/28723#discussion_r2682294852


More information about the hotspot-gc-dev mailing list