RFR (M): 8129558: Coalesce dead objects during removal of self-forwarded pointers

Mikael Gerdin mikael.gerdin at oracle.com
Thu Jun 25 13:20:06 UTC 2015

Hi Thomas,

On 2015-06-25 10:07, Thomas Schatzl wrote:
> Hi all,
>    can I have reviews for the first change in a set of changes that speed
> up evacuation failure?
> This changeset coalesces dead objects (either really dead or already
> evacuated) in the regions where evacuation failure occurred, doing the
> necessary cleanup (BOT update, mark bitmap update) on the coalesced
> objects.
> Since in a "normal" evacuation failure >99% of objects are dead in the
> failing regions because G1 slightly overestimated allowable eden size,
> so this change saves a significant amount of processing time in the
> self-forwarding phase.
> I do not have exact numbers just for this particular change, only that
> at the end after applying all the changes I have we will be looking at
> evacuation failure in that "normal" case taking almost no extra time.
> Also cleaned up the code a little, e.g. removing unused parameters and
> variables, etc.
> CR:
> https://bugs.openjdk.java.net/browse/JDK-8129558
> Webrev:
> http://cr.openjdk.java.net/~tschatzl/8129558/webrev

Can you make zap_dead_objects a member function of 
then it will already have access to _g1 and _cm
and then have remove_self_forward_ptr_by_...
call a function on rspc to clear the last part of the region?
That way the zapping functionality is nicely encapsulated and
last_object_end doesn't need to be exposed.

Otherwise I think the change looks good and I think it's a nice step 
towards cleaning up this code.


> Testing:
> jprt, gc nightly/vm.quick tests on Aurora
> Thanks,
>    Thomas

More information about the hotspot-gc-dev mailing list