RFR (XS) 8141422: G1 eager reclaim card dirtying may dirty outide of allocated objects
Mikael Gerdin
mikael.gerdin at oracle.com
Wed Nov 4 13:20:35 UTC 2015
Hi all,
We've discovered a small issue with the card dirtying used to support
eager reclaim of humongous objects.
The problem is that when remembered set iteration yields a card which
does not correspond to the allocated part of a region then that cards
should be ignored. Currently the code only detects this situation when
the ignored card covers an otherwise free region but this check needs to
be extended to also check if the card corresponds to unallocated memory
in an otherwise used region.
An example of this situation is that the card corresponds to a part of
memory above _top in a humongous region and this is what we are seeing
in some test cases.
My suggested fix is to check "is_in_closed_subset" which will look up
the corresponding region and verify that the address is within the
allocated bounds of that region.
Bug: https://bugs.openjdk.java.net/browse/JDK-8141422
Webrev: http://cr.openjdk.java.net/~mgerdin/8141422/webrev.0/
Testing: JPRT
Thanks
/Mikael
More information about the hotspot-gc-dev
mailing list