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

Thomas Schatzl tschatzl at openjdk.org
Fri Feb 13 08:31:59 UTC 2026


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

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

Commit messages:
 - * remove unnecessary/wrong (now) assert
 - * fix TAMS initialization
 - Revert "8377000: [BACKOUT] JDK-8376126 G1: Convert remaining volatiles in G1ConcurrentMark to Atomic<T>"

Changes: https://git.openjdk.org/jdk/pull/29653/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=29653&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8377008
  Stats: 73 lines in 7 files changed: 13 ins; 4 del; 56 mod
  Patch: https://git.openjdk.org/jdk/pull/29653.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/29653/head:pull/29653

PR: https://git.openjdk.org/jdk/pull/29653


More information about the hotspot-gc-dev mailing list