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

Mikael Gerdin mikael.gerdin at oracle.com
Fri Nov 22 00:56:01 PST 2013


Coleen,

On November 21, 2013 8:11:22 PM Coleen Phillimore 
<coleen.phillimore at oracle.com> wrote:
>
> 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.

All Klasses are adjusted because we call oops_do on CLDG with the adjust 
closure. We don't need to discover the CLDs a second time after we are done 
with marking.

MarkSweep::adjust_class_loader() can be removed since it's not used.
The same problem affects ParallelScavenge but it's possible that the 
regression is not as obvious due to the parallelism.

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

Stefan,
This change looks good but since I was involved with developing the fix I'd 
like another gc Reviewer to look at the fix as well.

/Mikael

>
> 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