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