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

Jon Masamitsu jon.masamitsu at oracle.com
Fri Apr 17 16:01:56 UTC 2015


Kim,

Changes look good.

Reviewed.

Jon

One question below.

On 4/16/2015 8:13 PM, Kim Barrett 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-8078023
>
> Webrev:
> http://cr.openjdk.java.net/~kbarrett/8078023/webrev.00/
>
> Testing:
> JPRT
>




More information about the hotspot-gc-dev mailing list