RFR (M) Close alignment gaps in InstanceKlass
coleen.phillimore at oracle.com
coleen.phillimore at oracle.com
Tue Apr 21 21:36:32 UTC 2020
On 4/21/20 4:41 PM, Chris Plummer wrote:
> Hi Coleen,
>
> The SA changes look good. BTW, I've already made the
> TestIntConstant.java change in the Loom project.
> InstanceKlass::_misc_is_unsafe_anonymous was already changed to "8" in
> loom. You might want to sync up with Ron to make sure you aren't
> making conflicting changes in this area. Your code looks like:
>
> 249 enum {
> 250 _misc_rewritten = 1 << 0, //
> methods rewritten.
> 251 _misc_has_nonstatic_fields = 1 << 1, // for
> sizing with UseCompressedOops
> 252 _misc_should_verify_class = 1 << 2, // allow
> caching of preverification
> 253 _misc_is_unsafe_anonymous = 1 << 3, // has
> embedded _unsafe_anonymous_host field
> 254 _misc_is_contended = 1 << 4, //
> marked with contended annotation
>
> Loom looks like:
>
> static const unsigned _misc_kind_field_size = 0;
> ...
> // Start after _misc_kind field.
> enum {
> _misc_rewritten = 1 <<
> (_misc_kind_field_size + 0), // methods rewritten.
> _misc_has_nonstatic_fields = 1 <<
> (_misc_kind_field_size + 1), // for sizing with UseCompressedOops
> _misc_should_verify_class = 1 <<
> (_misc_kind_field_size + 2), // allow caching of preverification
> _misc_is_unsafe_anonymous = 1 <<
> (_misc_kind_field_size + 3), // has embedded _unsafe_anonymous_host
> field
> _misc_is_contended = 1 <<
> (_misc_kind_field_size + 4), // marked with contended annotation
> ...
>
> At the very least this is a merge conflict that loom will need to deal
> with and it would help to know about in advance (Alan normally does
> the merges).
It looks like there are other changes in loom that motivated changing it
like this. Why is misc_kind_field_size = 0?
Did loom add more misc_flags ? It turns out that there are plenty of
available flags in the access_flags if more are needed.
Thank you for looking at the SA changes.
Coelen
>
> thanks,
>
> Chris
>
> On 4/21/20 1:12 PM, coleen.phillimore at oracle.com wrote:
>> Summary: moved fields around and some constant fields into ConstantPool
>>
>> This is a simple change except that I moved some constant fields from
>> InstanceKlass into the constant pool so they can be shared read-only
>> in the CDS archive. There are associated repercussions in SA and
>> JVMCI, so please look at these changes. Also moved similarly sized
>> fields together in the class so there's less likelihood of
>> introducing gaps in future InstanceKlass changes.
>>
>> InstanceKlass is reduced from 544 to 520 bytes in a simple Hello
>> World class.
>>
>> open webrev at
>> http://cr.openjdk.java.net/~coleenp/2020/8238048.01/webrev
>> bug link https://bugs.openjdk.java.net/browse/JDK-8238048
>>
>> Tested with tier1-6.
>>
>> Thanks,
>> Coleen
>>
>>
>
More information about the serviceability-dev
mailing list