RFR: 8252105: Parallel heap inspection for ZCollectedHeap
Per Liden
pliden at openjdk.java.net
Mon Oct 5 15:46:52 UTC 2020
This patch changes the ZHeapIterator to also support parallel iteration, for use in
ZCollectedHeap::parallel_object_iterator(). I initially looked at using the heap walking logic in ZMark, instead of
also implementing it in ZHeapIterator. That's probably something we want to do at some point, but that would require
some major restructuring of ZMark. In the mean time I've kept the heap walking logic in ZHeapIterator.
The ZHeapIterator now implements ParallelObjectIterator, and the same code paths is used for both serial and parallel
iteration. Arrays are chunked using ObjArrayTask to reduce mark stack space. A terminator is used for better work
stealing/balance.
Tested using `jmap -histo` and various benchmarks with `-XX:+ZVerifyObjects` and `-XX:+VerifyDuringGC` enabled.
-------------
Commit messages:
- 8252105: Parallel heap inspection for ZCollectedHeap
Changes: https://git.openjdk.java.net/jdk/pull/507/files
Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=507&range=00
Issue: https://bugs.openjdk.java.net/browse/JDK-8252105
Stats: 308 lines in 8 files changed: 212 ins; 17 del; 79 mod
Patch: https://git.openjdk.java.net/jdk/pull/507.diff
Fetch: git fetch https://git.openjdk.java.net/jdk pull/507/head:pull/507
PR: https://git.openjdk.java.net/jdk/pull/507
More information about the hotspot-gc-dev
mailing list