[8u40] RFR: 8056240: Investigate increased GC remark time after class unloading changes in CRM Fuse

Stefan Karlsson stefan.karlsson at oracle.com
Wed Nov 5 09:04:22 UTC 2014


On 2014-11-05 10:16, Mikael Gerdin wrote:
> Hi Stefan,
>
> On 2014-11-05 09:48, Stefan Karlsson wrote:
>>
>> On 2014-11-05 09:03, Stefan Karlsson wrote:
>>> Hi all,
>>>
>>> Please, review the backport of this fix to 8u40:
>>> http://cr.openjdk.java.net/~stefank/backports/8u40/8056240/webrev.01/
>>>
>>> I've attached the .rej files from applying the JDK 9 patch to JDK 8u40.
>>
>> The attachments were removed. The files can be found at:
>> http://cr.openjdk.java.net/~stefank/backports/8u40/8056240/webrev.01/rej/ 
>>
>
> Thanks for posting the reject files, it made reviewing the backport 
> much easier!
>
> Looks good.

Thanks!

StefanK

>
> /Mikael
>
>>
>> thanks,
>> StefanK
>>
>>>
>>> Reasons for the .rej files from the failed applied patch hunks:
>>>  metadataOnStackMark.cpp - the has_redefined_a_class parameter in
>>> MetadataOnStackMark(bool has_redefined_a_class) is only present in 
>>> JDK 9.
>>>  metadataOnStackMark.hpp - the same as above
>>>  classLoaderData.cpp - has_redefined_a_class parameter and JDK-8040237
>>> isn't backported
>>>  concurrentMark.cpp - JDK-8027450 isn't backported
>>>
>>> thanks,
>>> StefanK
>>>
>>> On 2014-10-02 12:53, Stefan Karlsson wrote:
>>>> Hi all,
>>>>
>>>> (The following patch changes HotSpot code in areas concerning GC, RT,
>>>> and Compiler. So, it would be good to get reviews from all three 
>>>> teams.)
>>>>
>>>> Please, review this patch to optimize and parallelize the CodeCache
>>>> part of MetadaOnStackMark.
>>>>
>>>> G1 performance measurements showed longer than expected remark times
>>>> on an application using a lot of nmethods and Metadata. The cause for
>>>> this performance regression was the call to
>>>> CodeCache::alive_nmethods_do(nmethod::mark_on_stack); in
>>>> MetadataOnStackMark. This code path is only taken when class
>>>> redefinition is used. Class redefinition is typically used in
>>>> monitoring and diagnostic frameworks.
>>>>
>>>> With this patch we now:
>>>> 1) Filter out duplicate Metadata* entries instead of storing a
>>>> Metadata* per visited metadata reference.
>>>> 2) Collect the set of Metadata* entries in parallel. The code
>>>> piggy-backs on the parallel CodeCache cleaning task.
>>>>
>>>> http://cr.openjdk.java.net/~stefank/8056240/webrev.00/
>>>> https://bugs.openjdk.java.net/browse/JDK-8056240
>>>>
>>>> Functional testing:
>>>> JPRT, Kitchensink, parallel_class_unloading, unit tests
>>>>
>>>> Performance testing:
>>>> CRM Fuse - where the regression was found
>>>>
>>>> The patch changes HotSpot code in areas concerning GC, RT, Compiler,
>>>> and Serviceability. It would be good to get some reviews from the
>>>> other teams, and not only from the GC team.
>>>>
>>>> thanks,
>>>> StefanK
>>>
>>



More information about the hotspot-dev mailing list