RFR (M): 8087198: G1 card refinement: batching, sorting
Man Cao
manc at google.com
Tue Nov 12 02:26:29 UTC 2019
Hi all,
Can I have reviews for an updated implementation for batching card
refinement?
RFE: https://bugs.openjdk.java.net/browse/JDK-8087198
Webrev: https://cr.openjdk.java.net/~manc/8087198/webrev.00/
Old review thread is:
http://mail.openjdk.java.net/pipermail/hotspot-gc-dev/2015-June/013798.html.
Major differences from the 2015 webrev:
- New version does not save the MemRegions for the cards in a buffer. I
noticed considerable memory overhead with BigRamTester if we save the
MemRegions.
- New version handles SuspendibleThreadSetJoiner::should_yield() in a more
timely fashion. Instead of forcing refining all buffered cards, the new
version can abandon the buffered cards.
- New version only batches and sorts the cards, not joining and
prefetching. I have not investigated whether joining and prefetching help
much. I think it is OK to investigate them in a separate RFE later.
Please refer to the RFE page for some performance results.
For correctness, tested with:
- Submit repo: tier1
- Local fastdebug build: tier2
- Fastdebug stress testing DaCapo h2 and BigRamTester with following
option combinations in addition to -XX:+VerifyRememberedSets:
default options
-XX:-G1UseAdaptiveConcRefinement -XX:G1UpdateBufferSize=4
-XX:G1ConcRefinementGreenZone=0 -XX:G1ConcRefinementYellowZone=1
-XX:G1ConcRefinementThreads=0
-Man
More information about the hotspot-gc-dev
mailing list