RFR: 8056240: Investigate increased GC remark time after class unloading changes in CRM Fuse
Coleen Phillimore
coleen.phillimore at oracle.com
Thu Oct 2 15:59:33 UTC 2014
This is going to take a while to review since it's so complicated.
One thing, I've been meaning to take on_stack out of access_flags in
method.hpp because there are other flags in method where it can be
added. That would eliminate the need for the accessFlags.hpp change.
Can you move it?
Coleen
On 10/2/14, 6:53 AM, 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