RFR(M) 8147461: Use byte offsets for vtable start and vtable length offsets
mikael.gerdin at oracle.com
Tue Jan 19 07:41:46 UTC 2016
On 2016-01-18 11:53, Volker Simonis wrote:
> Hi Mikael,
> your change builds and runs fine on ppc64.
Thanks for testing the changes.
> Thanks for considering ppc64 in your patch,
> On Fri, Jan 15, 2016 at 6:04 PM, Mikael Gerdin <mikael.gerdin at oracle.com> wrote:
>> Hi all,
>> As per the previous discussion in mid-December about moving the
>> _vtable_length field to class Klass, here's the first RFR and webrev,
>> according to my suggested plan:
>>> My current plan is to first modify the vtable_length_offset accessor to
>>> return a byte offset (which is what it's translated to by all callers).
>>> Then I'll tackle moving the _vtable_len field to Klass.
>>> Finally I'll try to consolidate the vtable related methods to Klass,
>>> where they belong.
>> This change actually consists of three changes:
>> * modifying InstanceKlass::vtable_length_offset to become a byte offset and
>> use the ByteSize type to communicate the scaling.
>> * modifying InstanceKlass::vtable_start_offset to become a byte offset and
>> use the ByteSize type, for symmetry reasons mainly.
>> * adding a vtableEntry::size_in_bytes() since in many places the vtable
>> entry size is used in combination with the vtable start to compute a byte
>> offset for vtable lookups.
>> I don't foresee any issues with the fact that the byte offset is represented
>> as an int, for two reasons:
>> 1) If the offset of any of these grows to over 2 gigabytes then we have a
>> huge footprint problem with InstanceKlass
>> 2) The offsets are converted to byte offsets and stored in ints already in
>> the cpu specific code I've modified.
>> Bug link: https://bugs.openjdk.java.net/browse/JDK-8147461
>> Webrev: http://cr.openjdk.java.net/~mgerdin/8147461/webrev.0/
>> Testing: JPRT on Oracle supported platforms, testing on AARCH64 and PPC64
>> would be much appreciated, appropriate mailing lists have been CC:ed to
>> notify them of the request.
More information about the hotspot-dev