RFR: 8056240: Investigate increased GC remark time after class unloading changes in CRM Fuse
Bertrand Delsart
bertrand.delsart at oracle.com
Tue Oct 14 16:16:04 UTC 2014
Looks good to me too.
Thanks for fixing it.
Bertrand (not a Reviewer).
On 14/10/14 17:00, Mikael Gerdin wrote:
> Stefan,
>
> On 2014-10-14 16:42, Stefan Karlsson wrote:
>> Hi,
>>
>> Here are the latest changes based on comments from Bertrand and Mikael:
>> http://cr.openjdk.java.net/~stefank/8056240/webrev.02
>> http://cr.openjdk.java.net/~stefank/8056240/webrev.02.delta
>
> Looks good to me.
> /Mikael
>
>>
>> thanks,
>> StefanK
>>
>> On 2014-10-13 15:11, Stefan Karlsson wrote:
>>> Hi again,
>>>
>>> Latest changes after comments from Bertrand and Coleen:
>>> http://cr.openjdk.java.net/~stefank/8056240/webrev.01
>>> http://cr.openjdk.java.net/~stefank/8056240/webrev.01.delta
>>>
>>> 1) Updated AccessFlags:set_on_stack to use a looping cmpxchg
>>> implementation.
>>> 2) Remove MetadataOnStackMark::_doit and restructure
>>> ClassLoaderDataGraph::do_unloading instead.
>>> 3) Move MetadataOnStackBuffer and make it a utility class named
>>> ChunkedList.
>>>
>>> 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
>>>
>>
--
Bertrand Delsart, Grenoble Engineering Center
Oracle, 180 av. de l'Europe, ZIRST de Montbonnot
38334 Saint Ismier, FRANCE
bertrand.delsart at oracle.com Phone : +33 4 76 18 81 23
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NOTICE: This email message is for the sole use of the intended
recipient(s) and may contain confidential and privileged
information. Any unauthorized review, use, disclosure or
distribution is prohibited. If you are not the intended recipient,
please contact the sender by reply email and destroy all copies of
the original message.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
More information about the hotspot-dev
mailing list