RFR: Don't consider pinned regions in full-GC

Aleksey Shipilev shade at redhat.com
Mon Nov 13 13:24:58 UTC 2017


On 11/13/2017 01:50 PM, Roman Kennke wrote:
> I made a mistake in my pinned-cset change recently. As it is, mark-compact would happily compact
> pinned-cset regions (because they are also cset). This fixes it:
> 
> http://cr.openjdk.java.net/~rkennke/pinned-mark-compact/webrev.00/

The root cause for the trouble is weird macro-property of pinned that is not an individual state
anymore. Instead of extending the predicate in one place -- and arriving to the same mess we had
before introducing FSM -- it is better to use macro-properties. Like this:
  http://cr.openjdk.java.net/~shade/shenandoah/region-fsm-pinned/webrev.01/

This also fixes the bug that makes is_alloc_allowed return "true" for pinned_cset regions. It also
makes compaction code disregard empty (both committed and uncommitted) regions.

Passes hotspot_gc_shenandoah/fastdebug.

Thanks,
-Aleksey





More information about the shenandoah-dev mailing list