RFR(S): 8068579: Running with -XX:-UseParallelGC does not turn ParalleGC off

Per Liden per.liden at oracle.com
Fri Mar 18 22:12:07 UTC 2016


Hi Jon,

> On 18 Mar 2016, at 19:00, Jon Masamitsu <jon.masamitsu at oracle.com> wrote:
> 
> Per,
> 
> http://cr.openjdk.java.net/~pliden/8068579/webrev.1/src/share/vm/runtime/arguments.cpp.frames.html
> 
> Why the change to make UseSerialGC as ergonomically selected?
> 
> 1856 FLAG_SET_ERGO_IF_DEFAULT(bool, UseSerialGC, true);

This is to have a consistent way of selecting GC across all VM variants. We end up in this code when the user didn’t specify any GC, so the VM selects one based on various rules. The selection of SerialGC here is not really special or different from the other cases, it just happens to be the outcome of a very simple rule in minimal VMs.

cheers,
Per

> 
> Jon
> 
> On 3/17/2016 6:36 AM, Per Liden wrote:
>> Hi,
>> 
>> On 2016-03-16 09:12, Per Liden wrote:
>>> Hi Dima,
>>> 
>>> On 2016-03-15 17:38, Dmitry Fazunenko wrote:
>>>> Hi Per,
>>>> 
>>>> A couple of comments:
>>>> 1) globals_extension.hpp.frames.html
>>>> requires copyright update
>>>> 2) such fix should go with a regression test, it could be done
>>>> separately.
>>> 
>>> Good point. I was about to add a test for this just now and realized
>>> that the new semantics is not kept for minimal VMs (i.e. when
>>> INCLUDE_ALL_GCS==0). I'll rework the patch a bit to have the same
>>> semantics also on minimal VMs. New webrev coming.
>> 
>> Here's an updated webrev. The new semantics is now available on all VMs (including minimal). I also added a new test for this.
>> 
>> This change also removes UNSUPPORTED_GC_OPTION() and instead reuses the existing UNSUPPORTED_OPTION(), which I tweaked slightly to make the output more consistent across the code base. This in turn meant that I needed to adjust some other tests.
>> 
>> http://cr.openjdk.java.net/~pliden/8068579/webrev.1/
>> 
>> Testing: jprt, manual
>> 
>> thanks,
>> Per
>> 
>>> 
>>> thanks,
>>> Per
>>> 
>>>> 
>>>> Thanks,
>>>> Dima
>>>> 
>>>> 
>>>> On 15.03.2016 16:48, Per Liden wrote:
>>>>> Summary: Explicitly disabling the default collector, without
>>>>> specifying another collector, will silently re-enable the default
>>>>> collector. This is a bit counter intuitive. A better approach would be
>>>>> for the VM to complain about the situation.
>>>>> 
>>>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8068579
>>>>> Webrev: http://cr.openjdk.java.net/~pliden/8068579/webrev.0/
>>>>> Testing: manual, jprt
>>>>> 
>>>>> Example (assuming it's a platform/configuration with G1 as default):
>>>>> 
>>>>> $ java -XX:-UseG1GC ...
>>>>> 
>>>>> Today, the above command will happily start a VM with G1 enabled.
>>>>> 
>>>>> With this patch the VM will instead complain, like this:
>>>>> 
>>>>> $ java -XX:-UseG1GC ...
>>>>> Error occurred during initialization of VM
>>>>> Garbage collector not selected (default collector explicitly disabled)
>>>>> 
>>>>> And of course, we're good with disabling the default collector as long
>>>>> as you specify some other collector, e.g.:
>>>>> 
>>>>> $ java -XX:-UseG1GC -XX:+UseParallelGC ...
>>>>> 
>>>>> cheers,
>>>>> Per
>>>> 
> 



More information about the hotspot-gc-dev mailing list