RFR: Rehash VMOperations and cycle driver mechanics for consistency"

Aleksey Shipilev shade at redhat.com
Thu Dec 14 16:36:00 UTC 2017


http://cr.openjdk.java.net/~shade/shenandoah/operations-cleanup/webrev.01/

This is the preparation cleanup for Degenerate GC. The changes in this webrev are not about
functionality, but about harmonizing the code for future changes.

Brief tour:

 a) Three groups of methods are now in ShenandoahHeap: entry-points with the safepoint, entry-points
without the safepoints, and private group that does the actual operations.

 b) vmop_entry_* do all the needed setup, including capturing the gross GC times (In future, we may
report both gross and net times there, to capture these in GC logs!). These entry-points would
initiate the safepoint and call into entry_* methods. VM_Shenandoah* operations are now the simple
trampolines back to entry_*.

 c) entry_* do all the rest of needed setup (assuming safepoint or not), including figuring out the
worker counts, recording net times, and calling into op_* methods.

 d) op_* is where we do the actual thing for each phase. (Spoiler alert: Degenerate GC would just
call op_* methods in correct order, entering via single VMOp)

 e) Minor corrections in GCMark and stats for Full GC code

 f) Minor typo changes

Testing: hotspot_gc_shenandoah {fastdebug|release}

Thanks,
-Aleksey



More information about the shenandoah-dev mailing list