Thu, 21 Feb 2013 23:58:05 -0800
8008546: Wrong G1ConfidencePercent results in GUARANTEE(VARIANCE() > -1.0) FAILED
Reviewed-by: brutisso, johnc
Contributed-by: vladimir.kempik@oracle.com
1.1 --- a/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp Fri Feb 15 13:27:21 2013 -0800 1.2 +++ b/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp Thu Feb 21 23:58:05 2013 -0800 1.3 @@ -267,7 +267,15 @@ 1.4 double max_gc_time = (double) MaxGCPauseMillis / 1000.0; 1.5 double time_slice = (double) GCPauseIntervalMillis / 1000.0; 1.6 _mmu_tracker = new G1MMUTrackerQueue(time_slice, max_gc_time); 1.7 - _sigma = (double) G1ConfidencePercent / 100.0; 1.8 + 1.9 + uintx confidence_perc = G1ConfidencePercent; 1.10 + // Put an artificial ceiling on this so that it's not set to a silly value. 1.11 + if (confidence_perc > 100) { 1.12 + confidence_perc = 100; 1.13 + warning("G1ConfidencePercent is set to a value that is too large, " 1.14 + "it's been updated to %u", confidence_perc); 1.15 + } 1.16 + _sigma = (double) confidence_perc / 100.0; 1.17 1.18 // start conservatively (around 50ms is about right) 1.19 _concurrent_mark_remark_times_ms->add(0.05);
2.1 --- a/src/share/vm/gc_implementation/g1/g1_globals.hpp Fri Feb 15 13:27:21 2013 -0800 2.2 +++ b/src/share/vm/gc_implementation/g1/g1_globals.hpp Thu Feb 21 23:58:05 2013 -0800 2.3 @@ -32,7 +32,7 @@ 2.4 2.5 #define G1_FLAGS(develop, develop_pd, product, product_pd, diagnostic, experimental, notproduct, manageable, product_rw) \ 2.6 \ 2.7 - product(intx, G1ConfidencePercent, 50, \ 2.8 + product(uintx, G1ConfidencePercent, 50, \ 2.9 "Confidence level for MMU/pause predictions") \ 2.10 \ 2.11 develop(intx, G1MarkingOverheadPercent, 0, \