RFR: Degenerated GC mode for Traversal

Roman Kennke rkennke at redhat.com
Mon Mar 26 13:56:24 UTC 2018


Am 21.03.2018 um 14:04 schrieb Roman Kennke:
> This implements degenerated GC for traversal.
> 
> The idea is that if alloc fails during concurrent traversal, we slide
> into the degenerated pause, immediately drop the cset (and thus avoid
> any further evacuation), but continue traversal with the taskqueues that
> we have. This completes traversal of all live objects, and count
> liveness for everything, including in the previously cset regions. At
> the end of it, we reclaim every region that has zero live objects (i.e.
> anything previously cset that's traversed during degen will not get
> reclaimed).
> 
> I added special branch in process_oops() because we still need to update
> refs even for non-cset (or rather, no-more-cset) reginos.
> 
> For pretty much the same reason I added a fixup_roots() that is slightly
> different from the one in ShHeap.
> 
> Passes hotspot_gc_shenandoah
> 
> http://cr.openjdk.java.net/~rkennke/traversal-degen/webrev.01/
> 
> Ok?
> 
> Roman
> 

Ping?



More information about the shenandoah-dev mailing list