diff -r 9ee940f1de90 -r 11ff4e485670 src/hotspot/share/gc/g1/g1IHOPControl.cpp --- a/src/hotspot/share/gc/g1/g1IHOPControl.cpp Fri Nov 29 10:20:14 2019 +0100 +++ b/src/hotspot/share/gc/g1/g1IHOPControl.cpp Fri Nov 29 10:20:16 2019 +0100 @@ -113,6 +113,10 @@ ); } +double G1AdaptiveIHOPControl::get_new_prediction(TruncatedSeq const* seq) const { + return _predictor->get_new_lower_zero_bound_prediction(seq); +} + bool G1AdaptiveIHOPControl::have_enough_data_for_prediction() const { return ((size_t)_marking_times_s.num() >= G1AdaptiveIHOPNumInitialSamples) && ((size_t)_allocation_rate_s.num() >= G1AdaptiveIHOPNumInitialSamples); @@ -120,8 +124,8 @@ size_t G1AdaptiveIHOPControl::get_conc_mark_start_threshold() { if (have_enough_data_for_prediction()) { - double pred_marking_time = _predictor->get_new_prediction(&_marking_times_s); - double pred_promotion_rate = _predictor->get_new_prediction(&_allocation_rate_s); + double pred_marking_time = get_new_prediction(&_marking_times_s); + double pred_promotion_rate = get_new_prediction(&_allocation_rate_s); size_t pred_promotion_size = (size_t)(pred_marking_time * pred_promotion_rate); size_t predicted_needed_bytes_during_marking = @@ -168,8 +172,8 @@ actual_target, G1CollectedHeap::heap()->used(), _last_unrestrained_young_size, - _predictor->get_new_prediction(&_allocation_rate_s), - _predictor->get_new_prediction(&_marking_times_s) * 1000.0, + get_new_prediction(&_allocation_rate_s), + get_new_prediction(&_marking_times_s) * 1000.0, have_enough_data_for_prediction() ? "true" : "false"); } @@ -179,7 +183,7 @@ actual_target_threshold(), G1CollectedHeap::heap()->used(), _last_unrestrained_young_size, - _predictor->get_new_prediction(&_allocation_rate_s), - _predictor->get_new_prediction(&_marking_times_s), + get_new_prediction(&_allocation_rate_s), + get_new_prediction(&_marking_times_s), have_enough_data_for_prediction()); }