RFR 8223774: Shenandoah: Refactor ShenandoahRootProcessor and family

Aleksey Shipilev shade at redhat.com
Fri May 17 11:59:34 UTC 2019


On 5/16/19 5:09 PM, Zhengyu Gu wrote:
> Updated: http://cr.openjdk.java.net/~zgu/JDK-8223774/webrev.02/

I like it.

*) No, this block should be in ShenandoahTraversalGC*Heuristics*, not in ShenandoahTraversalGC
itself, look:
http://hg.openjdk.java.net/jdk/jdk/file/23837d614c17/src/hotspot/share/gc/shenandoah/heuristics/shenandoahTraversalHeuristics.cpp#l36

 313   // Traversal does not support concurrent code root scanning
 314   FLAG_SET_DEFAULT(ShenandoahConcurrentScanCodeRoots, false);

*) One more naming suggestion (see if it makes sense!). Current hierarchy is:

 ShenandoahRootProcessingPhase
   -> ShenandoahRootProcessor
   -> ShenandoahRootEvacuator
   -> ShenandoahRootUpdater
   -> ShenandoahRootAdjuster

It leads to awkward superclass name. Maybe we should rename ShenandoahRootProcessor to reflect what
it does to also match Evacuator/Updater/Adjuster? This frees ShenandoahRootProcessor to become the
superclass. For example:

 ShenandoahRootProcessor
   -> ShenandoahRootScanner [Does it *only* scan, though? Dunno.]
   -> ShenandoahRootEvacuator
   -> ShenandoahRootUpdater
   -> ShenandoahRootAdjuster

-Aleksey




More information about the shenandoah-dev mailing list