RFR: Single GCTimer shared by all operations
Aleksey Shipilev
shade at redhat.com
Wed Jan 31 11:28:58 UTC 2018
http://cr.openjdk.java.net/~shade/shenandoah/single-gc-timer/webrev.01/
Degenerated GC exposed a wrinkle in our GCTimer handling. Full GC has the separate GCTimer (for
legacy reasons?). All other operations run with GCTimer from ShHeap. Degenerated GC is peculiar: it
may start as the usual operation, but then *continue* as upgraded to Full GC. GCTimers then start to
misbehave with asserts like:
# assert(_phases->length() <= 1000) failed: Too many recored phases?
The solution/cleanup is to use a single GCTimer, basically letting Full GC using the GCTimer from
ShHeap.
Testing: hotspot_gc_shenandoah
Thanks,
-Aleksey
More information about the shenandoah-dev
mailing list