# HG changeset patch # User anoll # Date 1397456668 -7200 # Node ID 7150b16fda528d6c3f4d0768bd9456e67b8e604f # Parent 4e03f6196358c127ce163d6b8d6df749e0ee56ca 8029436: CICompilerCount is not updated when the number of compiler threads is adjusted to the number of CPUs Summary: CICompilerCount is updated in AdvancedThresholdPolicy::initialize, SimpleThresholdPolicy::initialize and NonTieredCompPolicy::initialize. A warning is printed if the usersets both, CICompilerCount and CICompilerCountPerCPU. Reviewed-by: kvn, twisti Contributed-by: Tobias Hartmann diff -r 4e03f6196358 -r 7150b16fda52 src/share/vm/runtime/advancedThresholdPolicy.cpp --- a/src/share/vm/runtime/advancedThresholdPolicy.cpp Fri Apr 25 09:22:42 2014 -0700 +++ b/src/share/vm/runtime/advancedThresholdPolicy.cpp Mon Apr 14 08:24:28 2014 +0200 @@ -53,7 +53,8 @@ } set_c1_count(MAX2(count / 3, 1)); - set_c2_count(MAX2(count - count / 3, 1)); + set_c2_count(MAX2(count - c1_count(), 1)); + FLAG_SET_ERGO(intx, CICompilerCount, c1_count() + c2_count()); // Some inlining tuning #ifdef X86 diff -r 4e03f6196358 -r 7150b16fda52 src/share/vm/runtime/arguments.cpp --- a/src/share/vm/runtime/arguments.cpp Fri Apr 25 09:22:42 2014 -0700 +++ b/src/share/vm/runtime/arguments.cpp Mon Apr 14 08:24:28 2014 +0200 @@ -2383,6 +2383,10 @@ status &= verify_interval(NmethodSweepFraction, 1, ReservedCodeCacheSize/K, "NmethodSweepFraction"); status &= verify_interval(NmethodSweepActivity, 0, 2000, "NmethodSweepActivity"); + if (!FLAG_IS_DEFAULT(CICompilerCount) && !FLAG_IS_DEFAULT(CICompilerCountPerCPU) && CICompilerCountPerCPU) { + warning("The VM option CICompilerCountPerCPU overrides CICompilerCount."); + } + return status; } diff -r 4e03f6196358 -r 7150b16fda52 src/share/vm/runtime/compilationPolicy.cpp --- a/src/share/vm/runtime/compilationPolicy.cpp Fri Apr 25 09:22:42 2014 -0700 +++ b/src/share/vm/runtime/compilationPolicy.cpp Mon Apr 14 08:24:28 2014 +0200 @@ -182,6 +182,7 @@ // max(log2(8)-1,1) = 2 compiler threads on an 8-way machine. // May help big-app startup time. _compiler_count = MAX2(log2_intptr(os::active_processor_count())-1,1); + FLAG_SET_ERGO(intx, CICompilerCount, _compiler_count); } else { _compiler_count = CICompilerCount; } diff -r 4e03f6196358 -r 7150b16fda52 src/share/vm/runtime/simpleThresholdPolicy.cpp --- a/src/share/vm/runtime/simpleThresholdPolicy.cpp Fri Apr 25 09:22:42 2014 -0700 +++ b/src/share/vm/runtime/simpleThresholdPolicy.cpp Mon Apr 14 08:24:28 2014 +0200 @@ -142,7 +142,8 @@ count = MAX2(log2_intptr(os::active_processor_count()), 1) * 3 / 2; } set_c1_count(MAX2(count / 3, 1)); - set_c2_count(MAX2(count - count / 3, 1)); + set_c2_count(MAX2(count - c1_count(), 1)); + FLAG_SET_ERGO(intx, CICompilerCount, c1_count() + c2_count()); } void SimpleThresholdPolicy::set_carry_if_necessary(InvocationCounter *counter) {