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