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

Leo Korinth lkorinth at openjdk.org
Thu Jan 22 12:36:42 UTC 2026


> This change moves almost all of the ConcurrentMark initialisation from its constructor to the method `G1ConcurrentMark::fully_initialize()`.  Thus, creation time of the VM can be slightly improved by postponing creation of ConcurrentMark. Most time is saved postponing creation of statistics buffers and threads.
> 
> It is not obvious that this is the best solution. I have earlier experimented with lazily allocating statistics buffers _only_. One could also initialise a little bit more eagerly (for example the concurrent mark thread) and maybe get a slightly cleaner change. However IMO it seems better to not have ConcurrentMark "half initiated" with a created mark thread, but un-initialised worker threads.
> 
> This change is depending on the integration of https://bugs.openjdk.org/browse/JDK-8373253.
> 
> I will be out for vacation, and will be back after new year (and will not answer questions during that time), but I thought I get the pull request out now so that you can have a look.

Leo Korinth has updated the pull request incrementally with six additional commits since the last revision:

 - Merge branch '_8373253' into _8367993
 - rename of method
 - Proposal by Stefan J
 - wip
 - Revert "8373253: Re-work InjectGCWorkerCreationFailure for future changes"
   
   This reverts commit d45ea8817ab2303b2decd8cbb2cd1bf5280aa181.
 - Revert "Fixup after comment from Ivan."
   
   This reverts commit 2aa8aa4b68027b62a8d4be1b86720fadfa48dda5.

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/28723/files
  - new: https://git.openjdk.org/jdk/pull/28723/files/9d9df671..2e370ce1

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=28723&range=04
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=28723&range=03-04

  Stats: 25 lines in 2 files changed: 18 ins; 7 del; 0 mod
  Patch: https://git.openjdk.org/jdk/pull/28723.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/28723/head:pull/28723

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


More information about the hotspot-gc-dev mailing list