RFR (S) 8215575: C2 crash: assert(get_instanceKlass()->is_loaded()) failed: must be at least loaded
David Holmes
david.holmes at oracle.com
Tue Jan 8 22:18:58 UTC 2019
Hi Coleen,
On 9/01/2019 2:08 am, coleen.phillimore at oracle.com wrote:
>
> 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?
Yes.
Thanks,
David
> 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