RFR: 8229027: Improve how JNIHandleBlock::oops_do distinguishes oops from non-oops

Erik Österlund erik.osterlund at oracle.com
Tue Aug 6 13:04:54 UTC 2019


Hi,

In JNIHandleBlock::oops_do(), the blocks may contain free list next 
pointers or oops. The distinction is detected by asking the 
CollectedHeap if the pointer value is in the heap reserve or not.
This forces GCs to have one single contiguous heap reservation, without 
holes in it, which seems like an unnecessary restriction (and 
effectively blocks a ZGC mac port).

This patch removes this reliance by tagging the free list next pointers 
instead, allowing the distinction between oops and freelist pointers 
based on the low order bit value.

Bug:
https://bugs.openjdk.java.net/browse/JDK-8229027

Webrev:
http://cr.openjdk.java.net/~eosterlund/8229027/webrev.00/


Thanks,
/Erik


More information about the hotspot-runtime-dev mailing list