Mercurial > hg > truffle
changeset 20596:4356234e712a
8041992: Fix of JDK-8034775 neglects to account for non-JIT VMs
Summary: Allow 0 compiler threads if no JIT is used.
Reviewed-by: kvn, dholmes
Contributed-by: Severin Gehwolf <sgehwolf@redhat.com>
author | anoll |
---|---|
date | Fri, 02 May 2014 06:24:39 +0200 |
parents | c83362e7de6f |
children | 327c00d0f091 |
files | src/share/vm/runtime/arguments.cpp test/compiler/startup/NumCompilerThreadsCheck.java |
diffstat | 2 files changed, 18 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/share/vm/runtime/arguments.cpp Sat Mar 29 14:54:48 2014 +0400 +++ b/src/share/vm/runtime/arguments.cpp Fri May 02 06:24:39 2014 +0200 @@ -2463,7 +2463,7 @@ #endif // TieredCompilation needs at least 2 compiler threads. - const int num_min_compiler_threads = (TieredCompilation && (TieredStopAtLevel >= CompLevel_full_optimization)) ? 2 : 1; + const int num_min_compiler_threads = (TieredCompilation && (TieredStopAtLevel >= CompLevel_full_optimization)) ? 2 : CI_COMPILER_COUNT; status &=verify_min_value(CICompilerCount, num_min_compiler_threads, "CICompilerCount"); return status;
--- a/test/compiler/startup/NumCompilerThreadsCheck.java Sat Mar 29 14:54:48 2014 +0400 +++ b/test/compiler/startup/NumCompilerThreadsCheck.java Fri May 02 06:24:39 2014 +0200 @@ -30,11 +30,28 @@ import com.oracle.java.testlibrary.*; public class NumCompilerThreadsCheck { + public static void main(String[] args) throws Exception { ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:CICompilerCount=-1"); OutputAnalyzer out = new OutputAnalyzer(pb.start()); String expectedOutput = "CICompilerCount of -1 is invalid"; out.shouldContain(expectedOutput); + + if (isZeroVm()) { + String expectedLowWaterMarkText = "must be at least 0"; + out.shouldContain(expectedLowWaterMarkText); + } + } + + private static boolean isZeroVm() { + String vmName = System.getProperty("java.vm.name"); + if (vmName == null) { + throw new RuntimeException("No VM name"); + } + if (vmName.toLowerCase().contains("zero")) { + return true; + } + return false; } }