RFR[L]: 8237767 Field layout computation overhaul
David Holmes
david.holmes at oracle.com
Wed Jan 29 13:33:14 UTC 2020
Hi Coleen,
On 29/01/2020 11:37 pm, coleen.phillimore at oracle.com wrote:
>
> Snippet reply.
>
> On 1/29/20 2:06 AM, David Holmes wrote:
>>
>>>>
>>>> src/hotspot/share/oops/instanceKlass.hpp
>>>>
>>>> You need to be careful with _extra_flags usage if there can be
>>>> concurrently updated bits. At the moment it looks like redefinition
>>>> is a mutable dynamic property, whilst "contended annotations" should
>>>> be a static immutable property - is that right?
>>>
>>> Correct, _has_contended_annotations is a static immutable property,
>>> while _is_being_redefined is a mutable one.
>>
>> Good to know. My concern is that if someone adds a new mutable flag
>> bit the need for atomic updates may not be noticed. We got bitten by
>> this in the past with a flag field and I think we eventually migrated
>> all of the mutable bits out into their own field. (Coleen should
>> recall that :) ).
>
> A lot of the _misc_flags are mutable. I think we should notice if
> someone adds a new flag that requires concurrent access, and not waste
> space in InstanceKlass for this flag. The other mutable bool doesn't
> seem to have any memory synchronization, iirc, which seems wrong.
I have a distinct recollection that we were bitten by this in the past.
Cheers,
David
>>
>>>> 61 FLATTENED, // flattened field
>>>>
>>>> Does this have any meaning before inline types come in?
>>>
>>> Yes, I wanted to reserved the entry in the enum.
>>
>> Hmmm a tenuous "okay". Seems odd to require this now to support code
>> that is still some way from joining mainline.
>
> I didn't think it's a big deal if some small pieces of future code are
> in this change.
>
> Coleen
>
>
>
More information about the hotspot-dev
mailing list