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