RFR: 8237363: Remove automatic is in heap verification in OopIterateClosure
Per Liden
per.liden at oracle.com
Wed Jan 22 09:57:25 UTC 2020
Looks good to me.
/Per
On 1/17/20 2:31 PM, Stefan Karlsson wrote:
> Hi all,
>
> Please review this patch to remove the automatic "is in heap"
> verification from OopIterateClosure.
>
> https://cr.openjdk.java.net/~stefank/8237363/webrev.01/
> https://bugs.openjdk.java.net/browse/JDK-8237363
>
> OopIterateClosure provides some automatic verification that loaded
> objects are inside the heap. Closures can opt out from this by
> overriding should_verify_oops().
>
> I propose that we move this verification, and the way to turn it off,
> and instead let the implementations of the closures decide the kind of
> verification that is appropriate. I want to do this to de-clutter the
> closure APIs a bit.
>
> I've gone through all OopIterateClosures that don't override
> should_verify_oops() and added calls to
> assert_oop_field_points_to_object_in_heap[_or_null] where the closures
> didn't have equivalent checks.
>
> A lot of the places didn't explicitly check that the object is within
> the heap but they would check for other things like:
> - Is the corresponding bit index within the range
> - Is the heap region index within range
> - Is the object in the reserved heap range (weaker than is_in)
>
> I've added asserts to those places. If you think I should remove some of
> them, please let me now.
>
> Tested with tier1-3
>
> Thanks,
> StefanK
More information about the hotspot-gc-dev
mailing list