RFR: Move JNI Weak References workaround to Shenandoah-specific root processor

Aleksey Shipilev shade at redhat.com
Wed Aug 15 07:49:06 UTC 2018


We have this workaround in 8u:
  http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/ba692039a40a

Kim Barrett suggested a saner approach to it -- which makes the workaround more to the point, allows
collecting jweaks during Full GC, and avoids bugs in whatever other codepath in RP that polls jweak
liveness:
  http://mail.openjdk.java.net/pipermail/hotspot-gc-dev/2018-August/022931.html

This patch implements that suggestion for Shenandoah:
  http://cr.openjdk.java.net/~shade/shenandoah/8u-workaround-jweak-2/webrev.01/

While we can intercept the bad closure during init-mark (and somehow disambiguate weak_oops closure
for JNI weaks and other weak roots), it seems more straight-forward to intercept it near the  actual
SRP use.

Testing: hotspot_tier3_gc_shenandoah (the regression test used to pass with the previous fix, failed
with reverting the previous fix, and passed again after applying this fix variant)

Thanks,
-Aleksey



More information about the shenandoah-dev mailing list