RFR: 8377008: [REDO] G1: Convert remaining volatiles in G1ConcurrentMark to Atomic<T>

Thomas Schatzl tschatzl at openjdk.org
Fri Feb 13 09:49:37 UTC 2026


On Tue, 10 Feb 2026 12:20:52 GMT, Thomas Schatzl <tschatzl at openjdk.org> wrote:

> Hi all,
> 
>   please review this change that reverts the backout from https://bugs.openjdk.org/browse/JDK-8377000 (first commit) and adds a simple fix to make TAMSes be initialized properly (second commit) and removes an obsolete assert (third commit).
> 
> After https://bugs.openjdk.org/browse/JDK-8371720 TAMSes are reinitialized when starting up concurrent mark at the first GC, losing all previously generated information for previously allocated memory.
> 
> The change just adds initialization of all the TAMSes for all active regions. In a follow-up I am preparing a more comprehensive change/cleanup that limits TAMS use to the marking process only so that we can initialize concurrent mark data structures even more lazily.
> 
> Testing: gha, tier1-5
> 
> Thanks,
>   Thomas

src/hotspot/share/gc/g1/g1ConcurrentMark.cpp line 932:

> 930:       _cm->update_top_at_mark_start(r);
> 931:     } else {
> 932:       _cm->reset_top_at_mark_start(r);

This is new: the lazy initialization of concurrent mark change may have cleared all TAMSes that were built up until now. They need to be recreated.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/29653#discussion_r2803282920


More information about the hotspot-gc-dev mailing list