[jdk21u-dev] RFR: 8315503: G1: Code root scan causes long GC pauses due to imbalanced iteration

Goetz Lindenmaier goetz at openjdk.org
Mon Apr 8 20:05:17 UTC 2024


I backport this for parity with 21.0.4-oracle.

I had to resolve 3 files:

src/hotspot/share/gc/g1/heapRegion.cpp
Hunk #1 had to be resolved. "8140326: G1: Consider putting regions where evacuation failed into next collection set" is not in 21.
It adds the "keep_tracked" argument.

src/hotspot/share/gc/g1/heapRegionRemSet.cpp
Resolved hunk #2 because of "8140326: G1: Consider putting regions where evacuation failed into next collection set".
Resolved hunk #4 because "8313202: MutexLocker should disallow null Mutexes" is not in 21
(other Mutex class).

src/hotspot/share/gc/g1/heapRegionRemSet.cpp
Resulved hunk #2, dual to hunk #2 in .cpp file.

Resolved hunks are in a commit of their own.

I include the two direct follow ups 
8317440: Lock rank checking fails when code root set is modified with the Servicelock held after JDK-8315503
8318720: G1: Memory leak in G1CodeRootSet after JDK-8315503

Both apply clean on top.

I'll backport the third follow-up
8323685: PrintSystemDictionaryAtExit has mutex rank assert
as dependend backport on top of these. It also applies clean,
but I think it is too large to merge it in here.

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

Commit messages:
 - Backport 8318720
 - Backport 8317440
 - Resolved hunks
 - Backport 8315503 - clean parts

Changes: https://git.openjdk.org/jdk21u-dev/pull/476/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk21u-dev&pr=476&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8315503
  Stats: 382 lines in 13 files changed: 221 ins; 115 del; 46 mod
  Patch: https://git.openjdk.org/jdk21u-dev/pull/476.diff
  Fetch: git fetch https://git.openjdk.org/jdk21u-dev.git pull/476/head:pull/476

PR: https://git.openjdk.org/jdk21u-dev/pull/476


More information about the jdk-updates-dev mailing list