RFR: 8214231: Allow concurrent cleaning of TypeStackSlotEntries and ReturnTypeEntry

Erik Österlund erik.osterlund at oracle.com
Thu Nov 22 13:59:29 UTC 2018


Hi,

The TypeStackSlotEntries and ReturnTypeEntry contain weak metadata links 
that must be cleaned during class unloading. With concurrent class 
unloading, their ci counterparts must be protected from accessing 
unloading metadata.

In particular, ciTypeStackSlotEntries and ciReturnTypeEntry counterparts 
copy the raw data from TypeStackSlotEntries and ReturnTypeEntry of the 
MDOs, and are subsequently queried by the compiler. The copied data may 
contain stale metadata. By checking for unloading metadata and replacing 
it with NULL during creation of the ci variants from their raw 
counterparts, we protect the compiler from seeing stale metadata that is 
being unloaded, before the GC has gotten around to cleaning up the MDOs.

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

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

Thanks,
/Erik


More information about the hotspot-dev mailing list