RFR(S) 8235629 Remove unnecessary calls to Thread::current
coleen.phillimore at oracle.com
coleen.phillimore at oracle.com
Wed Dec 11 21:25:41 UTC 2019
On 12/11/19 4:15 PM, Ioi Lam wrote:
>
>
> On 12/11/19 11:56 AM, Calvin Cheung wrote:
>>
>> On 12/11/19 10:19 AM, Ioi Lam wrote:
>>> https://bugs.openjdk.java.net/browse/JDK-8235629
>>> http://cr.openjdk.java.net/~iklam/jdk14/8235629-remove-thread-current.v01/
>>>
>>>
>>> + In mutex.cpp, put "assert_owner(Thread::current())" into
>>> DEBUG_ONLY to avoid
>>> the evaluation of the call in product builds.
>>> + Changed various "ResourceMark rm;" to "rm(THREAD)".
>>
>> Found a few more of the above in the following functions:
>>
>> void MetaspaceShared::preload_and_dump(TRAPS)
>> int MetaspaceShared::preload_classes
>> bool MetaspaceShared::try_link_class
>>
>> methodHandle Method::make_method_handle_intrinsic
>>
>> bool klassVtable::needs_new_vtable_entry
>>
>
> Hi Calvin,
>
> Thanks for the info. I've added these to my patch. Here's the delta
> from the last webrev
>
> http://cr.openjdk.java.net/~iklam/jdk14/8235629-remove-thread-current.v02.delta/
>
>
> I think there are probably many other cases that aren't found in my
> profile. I'll try to write a script to find all the cases and fix them
> in a separate RFE.
I assume there are many others. I think this set is good for now.
Coleen
>
> Thanks
> - Ioi
>
>
>> thanks,
>>
>> Calvin
>>
>>> + In UL logs, use "ResourceMark rm" only conditionally.
>>>
>>> I found these locations by running "java -version" in gdb, setting a
>>> breakpoint
>>> at Thread::current() and logging all the callstacks. So these are by
>>> no means complete,
>>> but are rather an easy-to-fix part of JVM start-up.
>>>
>>> Before: 0.0420053188 sec
>>> After: 0.0417649239 sec
>>> 99.42770374% = about .6% improvement
>>>
>>> Thanks
>>> - Ioi
>>>
>>>
>
More information about the hotspot-runtime-dev
mailing list