RFR (sh/8): Backport Traversal GC
Roman Kennke
rkennke at redhat.com
Mon Nov 11 15:21:45 UTC 2019
This backports the Traversal GC mode from sh/jdk11.
Some notable changes had to be made:
- The GC interface is radically different between jdk8 and jdk11. I
hooked up the new barriers to mostly-existing machinery for pre- or
post-barriers for G1. This covers everything that we need for traversal GC.
- The patch introduces ShenandoahKeepAliveBarrier, and thusly changes
many uses of ShenandoahSATBBarrier to that.
- We need an extra scan-all-roots-pass in init-traversal when we are
doing class-unloading, because we need to pre-evac-and-update all weak
roots. This is required because we don't have native LRB in 8.
Testing: hotspot_gc_shenandoah (x86_64, x86_32, aarch64 all without PCH,
all with fastdebug and release builds), specjvm and specjbb with
fastdebug/+ShVerify and release build
Webrev:
http://cr.openjdk.java.net/~rkennke/shjdk8-traversal/webrev.00/
Can I please get a review?
Roman
More information about the shenandoah-dev
mailing list