From f655568c473bf790a4fcb66de0915f540b3cfc33 Mon Sep 17 00:00:00 2001 From: Peter Shipton Date: Thu, 4 Nov 2021 17:51:15 -0400 Subject: [PATCH] Only enable verbose gc log for -Xlog levels trace, debug, info Levels off, warning, error do not enable the verbose gc log Issue https://github.com/eclipse-openj9/openj9/issues/13865 Signed-off-by: Peter Shipton --- runtime/vm/jvminit.c | 19 ++++++++- .../cmdLineTests/xlogTests/xlog.xml | 40 +++++++++++++++++++ 2 files changed, 57 insertions(+), 2 deletions(-) diff --git a/runtime/vm/jvminit.c b/runtime/vm/jvminit.c index 2756fa92cb4..0170ceb6a9e 100644 --- a/runtime/vm/jvminit.c +++ b/runtime/vm/jvminit.c @@ -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; } } } diff --git a/test/functional/cmdLineTests/xlogTests/xlog.xml b/test/functional/cmdLineTests/xlogTests/xlog.xml index c97fad6cfb4..6fd43aa91d9 100644 --- a/test/functional/cmdLineTests/xlogTests/xlog.xml +++ b/test/functional/cmdLineTests/xlogTests/xlog.xml @@ -91,6 +91,30 @@ SPDX-License-Identifier: EPL-2.0 OR Apache-2.0 OR GPL-2.0 WITH Classpath-excepti JVMJ9VM007 + + $EXE$ $ENABLEXLOG$ -Xlog:gc=trace -version + (openjdk|java|semeru) version + verbosegc + JVMJ9VM007 + JVMJ9VM085 + + + + $EXE$ $ENABLEXLOG$ -Xlog:gc=debug -version + (openjdk|java|semeru) version + verbosegc + JVMJ9VM007 + JVMJ9VM085 + + + + $EXE$ $ENABLEXLOG$ -Xlog:gc=info -version + (openjdk|java|semeru) version + verbosegc + JVMJ9VM007 + JVMJ9VM085 + + $EXE$ $ENABLEXLOG$ -Xlog:gc: -version (openjdk|java|semeru) version @@ -184,6 +208,22 @@ SPDX-License-Identifier: EPL-2.0 OR Apache-2.0 OR GPL-2.0 WITH Classpath-excepti JVMJ9VM085 + + $EXE$ $ENABLEXLOG$ -Xlog:gc=warning -version + (openjdk|java|semeru) version + JVMJ9VM007W + verbosegc + JVMJ9VM085 + + + + $EXE$ $ENABLEXLOG$ -Xlog:gc=error -version + (openjdk|java|semeru) version + JVMJ9VM007W + verbosegc + JVMJ9VM085 + + $EXE$ $ENABLEXLOG$ -Xlog:any+gc=off -version (openjdk|java|semeru) version