RFR 8085965: VM hangs in C2Compiler

Kim Barrett kim.barrett at oracle.com
Sun Jun 14 06:53:46 UTC 2015


On Jun 11, 2015, at 3:34 PM, Jon Masamitsu <jon.masamitsu at oracle.com> wrote:
> 
> Poonam,
> 
> Thanks for the changes.
> 
> What do you think about deleting this part of the
> change (line 2759) from the flag processing?
> It feels like we're fixing something in two places where
> as we only really need the change in 
> Arguments::set_cms_and_parnew_gc_flags().
> 
> http://cr.openjdk.java.net/~poonam/8085965/webrev.01/src/share/vm/runtime/arguments.cpp.frames.html
> 
> 
> 2759       FLAG_SET_CMDLINE(bool, CMSClassUnloadingEnabled, false);

That seems wrong to me.

It seems to me that the problem here is inconsistencies in the (final) CLA values.
I think no change would be needed in concurrentMarkSweepGeneration.cpp if the CLA
values were consistent.  By consistent here I mean:

If ClassUnloading is false, then all CLA variations on class unloading must also be false.
There are at least:

ClassUnloadingWithConcurrentMark
CMSClassUnloadingEnabled
ExplicitGCInvokesConcurrentAndUnloadsClasses

I don’t know if there are more.

At least some of those might be false when ClassUnloading is true.  And of course, all three of
those should be treated as effectively false (and perhaps set false) when a non-concurrent collector
is invoked.

I think Gerard’s argument checking work will have some impact here.  I’d suggest that there should
be constraint functions for these arguments that verify consistency at the end of argument processing.




More information about the hotspot-gc-dev mailing list