RFR: Degenerated evacuation

Roman Kennke rkennke at redhat.com
Tue Sep 4 11:14:49 UTC 2018


Yep, very good, thank you!!

Roman


> http://cr.openjdk.java.net/~shade/shenandoah/degenerated-evac/webrev.01/
> 
> Recent evac-reserve work enables us to do proper degen-evac without going to Full GC right away. It
> is possible now, because allocation failure means depleted "mutator view", but evac-reserve should
> be still enough to get evacuations going. This fixes the last wrinkle in degeneration scheme for
> normal cycle. (We would need to take a look at degen-traversal later).
> 
> The webrev above contains verification and tests changes along with the actual degen-evac change.
> Those helped to diagnose one degen-evac bug.
> 
> Sample run of Compiler.compiler with very dense heap:
> 
> Trigger: Average GC time (111.81 ms) is above the time for allocation rate (124.07 MB/s) to deplete
> free headroom (0M)
> GC(1593) Pause Init Mark 0.288ms
> GC(1593) Concurrent marking 525M->921M(1024M) 94.232ms
> GC(1593) Pause Final Mark 0.560ms
> GC(1593) Concurrent cleanup 921M->925M(1024M) 0.182ms
> Failed to allocate 512K
> Cancelling GC: Allocation Failure
> GC(1593) Concurrent evacuation 926M->996M(1024M) 7.103ms
> Trigger: Handle Allocation Failure
> GC(1594) Pause Degenerated GC (Evacuation) 996M->872M(1024M) 48.612ms ; <--- Not Full GC anymore
> Trigger: Free (33M) is below minimum threshold (102M)
> 
> Testing: tier3_gc_shenandoah, ad-hoc tests with forced degen-evac
> 
> Thanks,
> -Aleksey
> 
> 




More information about the shenandoah-dev mailing list