RFR (S) 8215575: C2 crash: assert(get_instanceKlass()->is_loaded()) failed: must be at least loaded

coleen.phillimore at oracle.com coleen.phillimore at oracle.com
Tue Jan 8 16:08:35 UTC 2019


Hi David,

My original version had a storestore but Erik convinced me that is 
unneeded since the subklass and sibling lists are what are read 
concurrently and were the fields that needed the ordering, not 
necessarily this one.    If we backport this to 11, we have to add 
barriers to _subklass and _next_sibling like Erik has added.

Does the rest of the change look good?

Thanks,
Coleen

On 1/7/19 8:49 PM, David Holmes wrote:
> Hi Coleen,
>
> On 8/01/2019 5:50 am, coleen.phillimore at oracle.com wrote:
>> Summary: Set InstanceKlass::loaded before adding classes to the 
>> subklass list, which can be read concurrently by the compiler.
>
> I think you need a storestore barrier to ensure the new order is 
> preserved.
>
> Cheers,
> David
>
>> Thanks to Erik for the diagnosis and suggested fix.  See bug comments 
>> for more details.
>>
>> Tested with hs-tier1-3, 6 and 8.
>>
>> open webrev at http://cr.openjdk.java.net/~coleenp/8215575.01/webrev
>> bug link https://bugs.openjdk.java.net/browse/JDK-8215575
>>
>> Thanks,
>> Coleen



More information about the hotspot-dev mailing list