RFR: 8027675: Full collections with Serial slower in JDK 8 compared to 7u40

Coleen Phillimore coleen.phillimore at oracle.com
Thu Nov 21 11:11:22 PST 2013


Stefan,

I think the function MarkSweep::adjust_class_loader() is now unused, but 
I couldn't find where we adjust the class in the CLD walk. There are 
similar functions in ParallelScavenge - are they also not needed?   I 
don't recommend adding this change, just noting it may be cleaned up 
later if so.

This change seems good but I'm not a GC person.

thanks,
Coleen

On 11/21/2013 11:43 AM, Stefan Johansson wrote:
> Hi all,
>
> Can I have a couple reviews for this fix for:
> https://bugs.openjdk.java.net/browse/JDK-8027675
>
> Webrev:
> http://cr.openjdk.java.net/~sjohanss/8027675/webrev.00/
>
> Summary:
> When doing permgen removal we had to change the way classes were 
> marked and handled in the GC. When doing this we ended up doing some 
> things a little less efficient than before. The regression is easy to 
> reproduce and when doing a JFR recording we can see that we now spend 
> more time in both the mark and adjust phase.
>
> To improve the mark phase:
> * Enabled the calls to follow_klass to be inlined.
> * Reduce the extensive amount of calls to follow_class_loader in 
> follow_klass and instead just mark the klass holder (the class loader 
> or the java mirror) for the given klass.
>
> To improve the adjust phase:
> * All calls to adjust_klass have been removed since this is already 
> handled by processing the ClassLoaderDataGraph.
>
> Testing:
> * Manually ran SPECjbb2005 to verify fixing the regression
> * JPRT for functional sanity testing
> * Nashorn tests to stress anonymous classes
>
> Thanks,
> StefanJ



More information about the hotspot-dev mailing list