RFR: 8073717: verify_no_cset_oops found reclaimed humongous object in SATB buffer

Kim Barrett kim.barrett at oracle.com
Fri Apr 17 03:11:14 UTC 2015


On Apr 14, 2015, at 1:00 AM, Kim Barrett <kim.barrett at oracle.com> wrote:
> 
> Please review this change to remove some no longer valid checking of
> the SATB buffers.
> 
> During an evacuation pause there are several points where the contents
> of the SATB buffers (along with other data structures not relevant
> here) are examined to verify they don't contain objects that are in
> the collection set.  The introduction of eager reclaim of humongous
> objects may result in violations of the "invariant" being checked,
> when applied to the SATB buffers.
> 
> This is related to other issues around stale references to reclaimed
> humongous objects being present in the SATB buffers.  See also
> https://bugs.openjdk.java.net/browse/JDK-8075466.
> 
> Rather than doing extra work to scrub the stale references from the
> buffers, we are going to handle them lazily - the needed tests are
> already being performed by the final processor of the SATB buffers as
> part of object marking.  This means that invariants about the contents
> of the SATB buffers need to be relaxed.
> 
> To deal with this particular case, where verify_no_cset_oops is
> failing, we are changing to no longer have that function examine the
> SATB buffers at all.  Removing that checking then leaves some
> functions for the SATB queues unused, so we delete them too.
> 
> As a result, one of the three calls was checking state that hadn't
> changed since the previous check, so was removed.
> 
> CR:
> https://bugs.openjdk.java.net/browse/JDK-8073717
> 
> Webrev:
> http://cr.openjdk.java.net/~kbarrett/8073717/webrev.00/
> 
> Testing:
> JPRT

Please ignore this review request.  I’ll be sending out a new request shortly, under a different (non-confidential) bug number.



More information about the hotspot-gc-dev mailing list