RFR: 8210236: Prepare ciReceiverTypeData::translate_receiver_data_from for concurrent class unloading
erik.osterlund at oracle.com
Mon Sep 3 15:27:17 UTC 2018
Thank you for the review.
On 2018-08-31 15:12, coleen.phillimore at oracle.com wrote:
> This looks good.
> On 8/30/18 3:08 PM, Erik Österlund wrote:
>> 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
>> This patch builds on 8210233 which makes Klass::is_loader_alive()
>> concurrency friendly using phantom loads.
More information about the hotspot-dev