--- a/hotspot/src/share/vm/runtime/commandLineFlagConstraintsCompiler.cpp Wed Jul 29 08:05:21 2015 +0200
+++ b/hotspot/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/hotspot/test/compiler/arguments/CheckCICompilerCount.java Wed Jul 29 08:05:21 2015 +0200
+++ b/hotspot/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
};