RFR: 8210236: Prepare ciReceiverTypeData::translate_receiver_data_from for concurrent class unloading
coleen.phillimore at oracle.com
coleen.phillimore at oracle.com
Fri Aug 31 13:12:27 UTC 2018
This looks good.
Coleen
On 8/30/18 3:08 PM, Erik Österlund wrote:
> Hi,
>
> When concurrently unloading classes, it is possible for MDOs to have
> stale metadata entries in them until the GC comes around to clean it
> up. That is fine, but there is one place where extra care needs to be
> taken: when the compiler interface fetches ReceiverTypeData. This is
> done by memcpy:ing the ReceiverTypeData to a new memory buffer, and
> walking the metadata, patching it with corresponding ci metadata
> classes in the new buffer. The metadata could be stale by now. In such
> scenarios, the rows should be lazily cleaned. Once the ci metadata
> handles are created, they are safe to use in the rest of the code.
>
> This patch builds on 8210233 which makes Klass::is_loader_alive()
> concurrency friendly using phantom loads.
>
> Webrev:
> http://cr.openjdk.java.net/~eosterlund/8210236/webrev.00
>
> Bug:
> https://bugs.openjdk.java.net/browse/JDK-8210236
>
> Thanks,
> /Erik
More information about the hotspot-dev
mailing list