RFR 8223774: Shenandoah: Refactor ShenandoahRootProcessor and family

Roman Kennke rkennke at redhat.com
Mon May 13 15:34:13 UTC 2019


The webrev lists both:

rev 54809 : 8223215: Shenandoah: Support verifying subset of roots
rev 54810 : 8223774: Shenandoah: Refactor ShenandoahRootProcessor and family

Not a big deal though.

The templatization of ShenandoahRootUpdater... wouldn't it make sense to
also do this for the other root iterators? Right now, the interesting
stuff e.g. Thread::oops_do() is not templatized, but I suspect it would
benefit if it did, and avoid virtual calls in the thread scanning code.

Other than that, looks good to me. Let Aleksey also have a look.

Roman


> I would like to refactor ShenandoahRootProcessor and family, because it
> is bit hard to track and reason the combinations of incoming parameters,
> and combinations are likely to increase when moving more processing to
> concurrent phases.
> 
> Also, fixed a traversal bug that did not do
> StringDedup::gc_prologue()/gc_epilogue() in
> ShenandoahInitTraversalCollectionTask, bug showed up with refactored code.
> 
> The refacoring removed some verification assertions, but we now have
> equivalent functionality in verifier.
> 
> Bug: https://bugs.openjdk.java.net/browse/JDK-8223774
> Webrev: http://cr.openjdk.java.net/~zgu/JDK-8223774/webrev.00/index.html
> 
> Test:
>   hotspot_gc_shenandoah (fastdebug and release)
> 
> Thanks,
> 
> -Zhengyu



More information about the shenandoah-dev mailing list