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