RFR(S) 8210864 Reduce the use of metaspaceShared.hpp

coleen.phillimore at oracle.com coleen.phillimore at oracle.com
Tue Sep 18 19:52:54 UTC 2018



On 9/18/18 3:06 PM, Ioi Lam wrote:
> Hi Coleen,
>
> Thanks for the review.
>
> I don’t know how often those asserts are called in debug build. If they happen a lot (per heap object, etc) I don’t want to slow down the debug builds and cause more testing timeouts. So I figured I should rather be safe than sorry.

Okay, it might be called for every oop, and it's an improvement. Seems good.
Coleen

>
> Thanks
> Ioi
>
>> On Sep 18, 2018, at 11:45 AM, coleen.phillimore at oracle.com wrote:
>>
>>
>> This seems good but Iis it really necessary for performance to make is_archive_object() inline in metaspaceShared.inline.hpp?
>>
>> thanks,
>> Coleen
>>
>>> On 9/18/18 1:03 PM, Ioi Lam wrote:
>>> https://bugs.openjdk.java.net/browse/JDK-8210864
>>> http://cr.openjdk.java.net/~iklam/jdk12/8210864-reduce-metaspaceShared-hpp-include.v01/
>>>
>>> I really hate it whenever I edit metaspaceShared.hpp I have to
>>> rebuild almost every source file in HotSpot. That's due to this
>>> usage in the popular header file oop.inline.hpp:
>>>
>>>      void oopDesc::forward_to(oop p) {
>>>        ...
>>>        assert(!MetaspaceShared::is_archive_object(oop(this)) &&
>>>               !MetaspaceShared::is_archive_object(p),
>>>               "forwarding archive object");
>>>
>>>
>>> The fix is to change the call to oopDesc::is_archive_object() which is
>>> defined out-of-line.
>>>
>>> With this change, the number of dependent .o files reduced from 500+ to
>>> 45.
>>>
>>> I added metaspaceShared.inline.hpp so oopDesc::forward_to should be
>>> as fast as before, and all other callers of MetaspaceShared::is_archive_object
>>> should be a little faster (probably not measurable).
>>>
>>> I also removed a few unnecessary includes of metaspaceShared.hpp
>>>
>>> Thanks
>>> - Ioi



More information about the hotspot-runtime-dev mailing list