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