RFR: 8273559: Shenandoah: Shenandoah should support multi-threaded heap dump

Zhengyu Gu zgu at openjdk.java.net
Fri Sep 10 18:26:06 UTC 2021


At the point when Shenandoah implemented heap dump, there was no ClassLoaderData::_claim_other flag. To avoid CLDG iteration interfering concurrent GC, we chosen single-threaded CLDG iteration with ClassLoaderData::_claim_none and ensured that by asserting calling thread has to be VMThread.

 JDK-8237354 broke the assumption, as it uses safepoint worker to execute heap dump, so that the thread executes CLDG iteration is not necessary VMThread.

Now, with new ClassLoaderData::_claim_other, we can enable multi-threaded CLDG iteration during heap dump.

Test:

- [x] hotspot_gc_shenandoah
- [x] tier1 with Shenandoah GC

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

Commit messages:
 - 8273559: Shenandoah: Shenandoah should support multi-threaded heap dump

Changes: https://git.openjdk.java.net/jdk/pull/5473/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=5473&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8273559
  Stats: 206 lines in 6 files changed: 161 ins; 11 del; 34 mod
  Patch: https://git.openjdk.java.net/jdk/pull/5473.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/5473/head:pull/5473

PR: https://git.openjdk.java.net/jdk/pull/5473



More information about the hotspot-gc-dev mailing list