OpenJDK / bsd-port / jdk9 / hotspot
changeset 8796:9605c3005f20
8132525: java -client -XX:+TieredCompilation -XX:CICompilerCount=1 -version asserts since 8130858
Summary: TieredCompilation not validated when CICompilerCount is processed
Reviewed-by: kvn, gziemski
author | roland |
---|---|
date | Wed, 29 Jul 2015 12:33:48 +0200 |
parents | 118468cea331 |
children | 6ad64d95053d |
files | src/share/vm/runtime/commandLineFlagConstraintsCompiler.cpp test/compiler/arguments/CheckCICompilerCount.java |
diffstat | 2 files changed, 55 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/share/vm/runtime/commandLineFlagConstraintsCompiler.cpp Wed Jul 29 08:05:21 2015 +0200 +++ b/src/share/vm/runtime/commandLineFlagConstraintsCompiler.cpp Wed Jul 29 12:33:48 2015 +0200 @@ -71,7 +71,10 @@ #endif // The default CICompilerCount's value is CI_COMPILER_COUNT. - assert(min_number_of_compiler_threads <= CI_COMPILER_COUNT, "minimum should be less or equal default number"); + // With a client VM, -XX:+TieredCompilation causes TieredCompilation + // to be true here (the option is validated later) and + // min_number_of_compiler_threads to exceed CI_COMPILER_COUNT. + min_number_of_compiler_threads = MIN2(min_number_of_compiler_threads, CI_COMPILER_COUNT); if (*value < (intx)min_number_of_compiler_threads) { if (verbose == true) {
--- a/test/compiler/arguments/CheckCICompilerCount.java Wed Jul 29 08:05:21 2015 +0200 +++ b/test/compiler/arguments/CheckCICompilerCount.java Wed Jul 29 12:33:48 2015 +0200 @@ -26,6 +26,7 @@ /* * @test CheckCheckCICompilerCount * @bug 8130858 + * @bug 8132525 * @summary Check that correct range of values for CICompilerCount are allowed depending on whether tiered is enabled or not * @library /testlibrary * @modules java.base/sun.misc @@ -36,12 +37,28 @@ public class CheckCICompilerCount { private static final String[][] NON_TIERED_ARGUMENTS = { { + "-server", "-XX:-TieredCompilation", "-XX:+PrintFlagsFinal", "-XX:CICompilerCount=0", "-version" }, { + "-server", + "-XX:-TieredCompilation", + "-XX:+PrintFlagsFinal", + "-XX:CICompilerCount=1", + "-version" + }, + { + "-client", + "-XX:-TieredCompilation", + "-XX:+PrintFlagsFinal", + "-XX:CICompilerCount=0", + "-version" + }, + { + "-client", "-XX:-TieredCompilation", "-XX:+PrintFlagsFinal", "-XX:CICompilerCount=1", @@ -56,22 +73,47 @@ }, { "intx CICompilerCount := 1 {product}" + }, + { + "CICompilerCount=0 must be at least 1", + "Improperly specified VM option 'CICompilerCount=0'" + }, + { + "intx CICompilerCount := 1 {product}" } }; private static final int[] NON_TIERED_EXIT = { 1, + 0, + 1, 0 }; private static final String[][] TIERED_ARGUMENTS = { { + "-server", "-XX:+TieredCompilation", "-XX:+PrintFlagsFinal", "-XX:CICompilerCount=1", "-version" }, { + "-server", + "-XX:+TieredCompilation", + "-XX:+PrintFlagsFinal", + "-XX:CICompilerCount=2", + "-version" + }, + { + "-client", + "-XX:+TieredCompilation", + "-XX:+PrintFlagsFinal", + "-XX:CICompilerCount=1", + "-version" + }, + { + "-client", "-XX:+TieredCompilation", "-XX:+PrintFlagsFinal", "-XX:CICompilerCount=2", @@ -86,11 +128,20 @@ }, { "intx CICompilerCount := 2 {product}" + }, + { + "CICompilerCount=1 must be at least 2", + "Improperly specified VM option 'CICompilerCount=1'" + }, + { + "intx CICompilerCount := 2 {product}" } }; private static final int[] TIERED_EXIT = { 1, + 0, + 1, 0 };