RFR: 8273112: -Xloggc and -Xlog should override -verbose

Xiaowei Lu github.com+39413832+weixlu at openjdk.java.net
Wed Sep 1 07:44:44 UTC 2021


On Wed, 1 Sep 2021 02:14:44 GMT, Ioi Lam <iklam at openjdk.org> wrote:

>> According to java 16 specifications for java command (https://docs.oracle.com/en/java/javase/16/docs/specs/man/java.html), the command line option -Xloggc should override -verbose:gc if both options are given with the same java command. However, gc information still outputs to console even if gc log file is specified.
>> 
>> $java -Xloggc:gc.log -verbose:gc -version
>> [0.000s][warning][gc] -Xloggc is deprecated. Will use -Xlog:gc:gc.log instead.
>> [0.003s][info ][gc] Using G1
>> $cat gc.log
>> [0.003s][info][gc] Using G1
>> 
>> In addition, since -Xloggc:filename is replaced by -Xlog:gc:filename, can we assume that -Xlog:gc:filename should override -verbose:gc as -Xloggc:filename? Currently, gclog still outputs to both stdout and file if -Xlog and -verbose are given with the same java command.
>> 
>> $java -Xlog:gc:gc.log -verbose:gc -version
>> [0.003s][info][gc] Using G1
>> $cat gc.log
>> [0.003s][info][gc] Using G1
>> 
>> As a result, we propose to put off the log configuration of -verbose option until we are confident that there isn’t -Xloggc or -Xlog options.
>
> src/hotspot/share/runtime/arguments.cpp line 2963:
> 
>> 2961:     if (ts->contains(LogTag::_gc) && ts->has_output_to_file()) {
>> 2962:       has_verbose_gc = false;
>> 2963:     }
> 
> What if the command-line is this?
> 
> 
> java -Xlog:gc+heap=foo.txt -verbose:gc -version

According to the current commit, we will have 

gc -> disabled
gc+heap ->foo.txt

But the same as the comment above, I'm not sure about its correctness. So maybe we should discuss what if the selections in Xlog is not the same as ``-Xlog:gc``.

-------------

PR: https://git.openjdk.java.net/jdk/pull/5295


More information about the hotspot-runtime-dev mailing list