RFR: Single GCTimer shared by all operations

Roman Kennke rkennke at redhat.com
Wed Jan 31 11:40:17 UTC 2018


Am 31.01.2018 um 12:28 schrieb Aleksey Shipilev:
> 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
> 

Seems good. Is there a difference between STWGCTimer and 
ConcurrentGCTimer that may fall on our feet?

Roman


More information about the shenandoah-dev mailing list