RFR: Skip RESOLVE when references update is not needed

Aleksey Shipilev shade at redhat.com
Mon May 15 15:42:28 UTC 2017


Hi,

When UR pass is done, we know there are no to-space references in heap anymore,
and we might as well skip their resolving until the next evac. Concurrent mark
already does specialize this for main loop, but not for the init mark, and
concurrent code cache scan. We had this idea before, but until UR were turned on
by default, this only affected the GC cycle after Full GC. Now it affects most
cycles.

Patch:
  http://cr.openjdk.java.net/~shade/shenandoah/initmark-skip-resolve/webrev.01/

Significantly improves performance when root set is heavy:
 http://cr.openjdk.java.net/~shade/shenandoah/initmark-skip-resolve/perf.txt

Testing: hotspot_gc_shenandoah; jcstress -m quick

Thanks,
-Aleksey



More information about the shenandoah-dev mailing list