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