RFR: Add new pinned/cset region state for evac-failure-path

Roman Kennke rkennke at redhat.com
Wed Nov 8 12:43:46 UTC 2017


We sometimes get an assert failure when running OOM during evac and 
attempting to pin a region afterwards: it would try to make a cset 
region pinned. This is normally not allowed, but necessary on the 
failure path, as a temporary state until mark-compact cleaned it up.

I solved it by adding a new region-state pinned-cset: when a region is 
in cset and is made pinned, it checks that it's on cancelled-gc path and 
goes to pinned-cset. From there it can only go back to cset (when 
unpinning the region) or to pinned (when clearing the cset state in 
mark-compact).

http://cr.openjdk.java.net/~rkennke/pinned-cset/webrev.00/ 
<http://cr.openjdk.java.net/%7Erkennke/pinned-cset/webrev.00/>

Passes all hotspot_gc_shenandoah tests.

Ok to push?

Roman



More information about the shenandoah-dev mailing list