RFR: 8229027: Improve how JNIHandleBlock::oops_do distinguishes oops from non-oops
erik.osterlund at oracle.com
Tue Aug 6 13:04:54 UTC 2019
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.
More information about the hotspot-runtime-dev