RFR: Fix reclamation of humongous objects in mark-compact

Roman Kennke rkennke at redhat.com
Tue Nov 29 12:06:08 UTC 2016


Aleksey's latest tests revealed a bug that deserves a bug DUH. Mark-
compact would never reclaim any humongous regions.


- mark-compact reclaims humongous regions *after* compaction, i.e. it
cannot utilize the new free space for compaction

this is unfortunate, but the real bug is this:

- it reclaims humongous regions after having cleared the bitmap. note:
we need marking bits for deciding whether or not to reclaim a humongous
region.

I hear you saying: shuoldn't this reclaim *all* humongous regions,
instead of none? Yes, but:

- before doing so, it resets the top-at-mark-start ptr to bottom,
treating all objects as implicitely marked.

Triple-strike!! :-D

The fix is to insert a pass to reclaim humongous regions right after
marking:

http://cr.openjdk.java.net/~rkennke/mark-compact-humongous/webrev.00/

With this, all tests pass.

Ok?

Roman



More information about the shenandoah-dev mailing list