RFR 8085965: VM hangs in C2Compiler

Kim Barrett kim.barrett at oracle.com
Tue Jun 16 20:45:44 UTC 2015


On Jun 16, 2015, at 4:30 PM, Poonam Bajaj Parhar <poonam.bajaj at oracle.com> wrote:
> 
>>> With your changes try
>>> 
>>> java -XX:+ExplicitGCInvokesConcurrentAndUnloadsClasses -XX:-ClassUnloading -XX:+UseConcMarkSweepGC -XX:+PrintFlagsFinal -version
>>> 
>>> and check if ExplicitGCInvokesConcurrent is true or false.
>>> 
>>> If it is true, I don't know if that is the right thing to do. In this case on the
>>> command line ExplicitGCInvokesConcurrentAndUnloadsClasses has been
>>> set to true and ClassUnloading has been set to false.  As a side effect,
>>> ExplicitGCInvokesConcurrent is set to true.  Whereas ExplicitGCInvokesConcurrentAndUnloadsClasses
>>> has been set back to false (probably) That may be a surprise to the
>>> users.
>>> 
>> For CMS, ExplicitGCInvokesConcurrent won't get set to true if ClassUnloading is false. In the argument parsing we would set ExplicitGCInvokesConcurrentAndUnloadsClasses to false and while constructing CMSCollector, we set ExplicitGCInvokesConcurrent.
>> 
>>  if (ExplicitGCInvokesConcurrentAndUnloadsClasses) {
>>    ExplicitGCInvokesConcurrent = true;
>>  }
>> 
>> I am testing it to confirm.
>> 
> Here's the result:
> 
> java -XX:+ExplicitGCInvokesConcurrentAndUnloadsClasses -XX:-ClassUnloading -XX:+UseConcMarkSweepGC  -XX:+PrintFlagsFinal -version
> [Global flags]
>    uintx AdaptiveSizeDecrementScaleFactor          = 4                                   {product}
>    ...
>    bool CMSClassUnloadingEnabled                 := false                               {product}
>    ...
>    bool ClassUnloading                           := false                               {product}
>    ...
>    bool ExplicitGCInvokesConcurrent               = false                               {product}
>    bool ExplicitGCInvokesConcurrentAndUnloadsClasses := false                               {product}

Thanks.

Changes look good to me.  There is further followup to be done, but I think this change can go ahead.




More information about the hotspot-gc-dev mailing list