RFR (S) round 0 for 8141068 Refactor -XXFlags= code in preparation for removal
Daniel D. Daugherty
daniel.daugherty at oracle.com
Wed Nov 11 17:34:56 UTC 2015
On 11/11/15 9:43 AM, Coleen Phillimore wrote:
>
>
> On 11/11/15 11:36 AM, Daniel D. Daugherty wrote:
>> This needs a little bit of clarification:
>>
>> 3976 jint Arguments::match_special_option_and_act(const
>> JavaVMInitArgs* args,
>> 3977 char **
>> vm_options_file,
>> 3978 ScopedVMInitArgs* args_out) {
>>
>> The 'vm_options_file' parameter is currently used for two things:
>>
>> 1) when the parameter is non-NULL, that indicates the caller
>> supports '-XX:VMOptionsFile'; currently only the cmd line
>> option bucket supports '-XX:VMOptionsFile'
>
> The args_out != NULL parameter indicates the same thing.
Yes. That's the check that used to be done. However, Ron
previously consolidated all of the checks to use the same
variable (vm_options_file). It seemed to confuse folks that
one check was done with 'vm_options_file' and the other check
was done with 'args_out'.
>> 2) makes sure that only one -XX:VMOptionsFile=foo option is
>> specified on the cmd line
>
> You can do that with a local variable vm_options_file in
> match_special_option_and_act.
>
> So it can be trivially removed. But it's not a big deal.
Yes, that's possible. And then we would be back in the situation
where one check is done via 'args_out' and the other check is
done via 'vm_options_file'.
The other reason for having 'vm_options_file' have a more global
scope was that we didn't know whether the restriction for having
only one '-XX:VMOptionsFile' would apply across all buckets when
support was added for the env vars. Again, that's something that
will be dealt with JDK-8135198.
Dan
>
> Coleen
>>
>> Restriction #1 is implemented by:
>>
>> 3994 if (vm_options_file != NULL) {
>> <snip>
>> 4022 } else {
>> 4023 jio_fprintf(defaultStream::error_stream(),
>> 4024 "VM options file is only supported on the
>> command line\n");
>> 4025 return JNI_EINVAL;
>> 4026 }
>>
>> Restriction #2 is implemented by:
>>
>> 3994 if (vm_options_file != NULL) {
>> 3995 // The caller accepts -XX:VMOptionsFile
>> 3996 if (*vm_options_file != NULL) {
>> 3997 jio_fprintf(defaultStream::error_stream(),
>> 3998 "The VM Options file can only be specified
>> once and "
>> 3999 "only on the command line.\n");
>> 4000 return JNI_EINVAL;
>> 4001 }
>>
>> So the 'vm_options_file' parameter cannot be removed at this
>> time without changing the current set of restrictions on the
>> '-XX:VMOptionsFile' option. Ron has another bug looking at
>> lifting those restrictions:
>>
>> JDK-8135198 Specifying a vm options file should not be limited
>> to only once on the command line
>> https://bugs.openjdk.java.net/browse/JDK-8135198
>>
>> JDK-8135198 will require a CCC request in order to change the
>> semantics that were defined in the original work (JDK-8061999).
>>
>> Dan
>>
>>
>> On 11/10/15 2:02 PM, Ron Durbin wrote:
>>> Coleen
>>>
>>> This is to formally respond to your email. Dan and I agreed the
>>> change you are requesting should be done, but not
>>> in this change set. Keeping this change set to only XX:Flags
>>> changes. A future change set that could clean up
>>> the options file processing should address your issue.
>>>
>>> Ron
>>>
>>>
>>>> -----Original Message-----
>>>> From: Coleen Phillimore
>>>> Sent: Monday, November 09, 2015 2:03 PM
>>>> To: hotspot-runtime-dev at openjdk.java.net
>>>> Subject: Re: RFR (S) round 0 for 8141068 Refactor -XXFlags= code in
>>>> preparation for removal
>>>>
>>>>
>>>> Ron,
>>>>
>>>> This looks really good! Although I don't see why you need to pass
>>>> vm_options_file argument into match_special_options_and_act now since
>>>> it's not used afterward, so you only have to pass one NULL in the
>>>> cases
>>>> where vm_options_file is not allowed.
>>>>
>>>> thanks,
>>>> Coleen
>>>>
>>>> On 11/6/15 2:05 PM, Ron Durbin wrote:
>>>>> This bug fix consists of a refactoring/cleanup of the -XX:Flags code.
>>>>>
>>>>> Webrev:
>>>>> http://cr.openjdk.java.net/~rdurbin/8141068_OCR0_JDK9_webrev
>>>>>
>>>>>
>>>>> Bug report:
>>>>> https://bugs.openjdk.java.net/browse/JDK-8141068
>>>>>
>>>>> This bug fix has been tested on:
>>>>> OS:
>>>>> Solaris, MAC, Windows, Linux
>>>>> Tests:
>>>>> Manual unit tests
>>>>> JPRT with -testset hotspot(including the SQE current test
>>>>> coverage for this feature.)
>>
>
More information about the hotspot-runtime-dev
mailing list