Skip to content

Commit

Permalink
Only enable verbose gc log for -Xlog levels trace, debug, info
Browse files Browse the repository at this point in the history
Levels off, warning, error do not enable the verbose gc log

Issue #13865

Signed-off-by: Peter Shipton <Peter_Shipton@ca.ibm.com>
  • Loading branch information
pshipton committed Nov 8, 2021
1 parent bad687e commit f655568
Show file tree
Hide file tree
Showing 2 changed files with 57 additions and 2 deletions.
19 changes: 17 additions & 2 deletions runtime/vm/jvminit.c
Original file line number Diff line number Diff line change
Expand Up @@ -6308,10 +6308,25 @@ parseXlogForCompatibility(J9JavaVM *vm)
if ('\0' == *upToComma) {
goto xlogerr;
}
gclog = 0 != j9_cmdla_stricmp("off", upToComma);
if (gclog) {
/* only levels trace, debug, info, and not off, warning, error, enable the gc verbose log */
if (0 == j9_cmdla_stricmp("off", upToComma)) {
gclog = FALSE;
} else if ((0 == j9_cmdla_stricmp("warning", upToComma))
|| (0 == j9_cmdla_stricmp("error", upToComma))
) {
gclog = FALSE;
/* OpenJ9 doesn't understand log levels */
unrecognizedOption = TRUE;
} else if ((0 == j9_cmdla_stricmp("trace", upToComma))
|| (0 == j9_cmdla_stricmp("debug", upToComma))
|| (0 == j9_cmdla_stricmp("info", upToComma))
) {
gclog = TRUE;
/* OpenJ9 doesn't understand log levels */
unrecognizedOption = TRUE;
} else {
/* unrecognized log level */
unrecognizedOption = TRUE;
}
}
}
Expand Down
40 changes: 40 additions & 0 deletions test/functional/cmdLineTests/xlogTests/xlog.xml
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,30 @@ SPDX-License-Identifier: EPL-2.0 OR Apache-2.0 OR GPL-2.0 WITH Classpath-excepti
<output regex="no" type="failure">JVMJ9VM007</output>
</test>

<test id="-Xlog:gc=trace">
<command>$EXE$ $ENABLEXLOG$ -Xlog:gc=trace -version</command>
<output regex="yes" caseSensitive="yes" javaUtilPattern="yes" type="success">(openjdk|java|semeru) version</output>
<output regex="no" type="required">verbosegc</output>
<output regex="no" type="required">JVMJ9VM007</output>
<output regex="no" type="failure">JVMJ9VM085</output>
</test>

<test id="-Xlog:gc=debug">
<command>$EXE$ $ENABLEXLOG$ -Xlog:gc=debug -version</command>
<output regex="yes" caseSensitive="yes" javaUtilPattern="yes" type="success">(openjdk|java|semeru) version</output>
<output regex="no" type="required">verbosegc</output>
<output regex="no" type="required">JVMJ9VM007</output>
<output regex="no" type="failure">JVMJ9VM085</output>
</test>

<test id="-Xlog:gc=info">
<command>$EXE$ $ENABLEXLOG$ -Xlog:gc=info -version</command>
<output regex="yes" caseSensitive="yes" javaUtilPattern="yes" type="success">(openjdk|java|semeru) version</output>
<output regex="no" type="required">verbosegc</output>
<output regex="no" type="required">JVMJ9VM007</output>
<output regex="no" type="failure">JVMJ9VM085</output>
</test>

<test id="-Xlog:gc:">
<command>$EXE$ $ENABLEXLOG$ -Xlog:gc: -version</command>
<output regex="yes" caseSensitive="yes" javaUtilPattern="yes" type="success">(openjdk|java|semeru) version</output>
Expand Down Expand Up @@ -184,6 +208,22 @@ SPDX-License-Identifier: EPL-2.0 OR Apache-2.0 OR GPL-2.0 WITH Classpath-excepti
<output regex="no" type="failure">JVMJ9VM085</output>
</test>

<test id="-Xlog:gc=warning">
<command>$EXE$ $ENABLEXLOG$ -Xlog:gc=warning -version</command>
<output regex="yes" caseSensitive="yes" javaUtilPattern="yes" type="success">(openjdk|java|semeru) version</output>
<output regex="no" type="required">JVMJ9VM007W</output>
<output regex="no" type="failure">verbosegc</output>
<output regex="no" type="failure">JVMJ9VM085</output>
</test>

<test id="-Xlog:gc=error">
<command>$EXE$ $ENABLEXLOG$ -Xlog:gc=error -version</command>
<output regex="yes" caseSensitive="yes" javaUtilPattern="yes" type="success">(openjdk|java|semeru) version</output>
<output regex="no" type="required">JVMJ9VM007W</output>
<output regex="no" type="failure">verbosegc</output>
<output regex="no" type="failure">JVMJ9VM085</output>
</test>

<test id="-Xlog:any+gc=off">
<command>$EXE$ $ENABLEXLOG$ -Xlog:any+gc=off -version</command>
<output regex="yes" caseSensitive="yes" javaUtilPattern="yes" type="success">(openjdk|java|semeru) version</output>
Expand Down

0 comments on commit f655568

Please sign in to comment.