Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Hi all,

  please review this fix to recent JDK-8349906 to use the current
survivor rate in the accumulated survivor rate for initializing newly
allocated entries as well.

Testing: gha

Thanks,
  Thomas
  • Loading branch information
tschatzl committed Feb 26, 2025
1 parent aac9cb4 commit 0cc9d33
Showing 1 changed file with 6 additions and 9 deletions.
15 changes: 6 additions & 9 deletions src/hotspot/share/gc/g1/g1SurvRateGroup.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -68,22 +68,19 @@ void G1SurvRateGroup::stop_adding_regions() {
_accum_surv_rate_pred = REALLOC_C_HEAP_ARRAY(double, _accum_surv_rate_pred, _num_added_regions, mtGC);
_surv_rate_predictors = REALLOC_C_HEAP_ARRAY(TruncatedSeq*, _surv_rate_predictors, _num_added_regions, mtGC);

// Assume that the prediction for the newly added regions is the same as the
// ones at the (current) end of the array. Particularly predictions at the end
// of this array fairly seldom get updated, so having a better initial value
// that is at least somewhat related to the actual application is preferable.
double new_pred = _stats_arrays_length > 1
? _accum_surv_rate_pred[_stats_arrays_length - 1] - _accum_surv_rate_pred[_stats_arrays_length - 2]
: InitialSurvivorRate;

for (size_t i = _stats_arrays_length; i < _num_added_regions; ++i) {
// Initialize predictors and accumulated survivor rate predictions.
_surv_rate_predictors[i] = new TruncatedSeq(10);
if (i == 0) {
_surv_rate_predictors[i]->add(InitialSurvivorRate);
_accum_surv_rate_pred[i] = 0.0;
} else {
_surv_rate_predictors[i]->add(_surv_rate_predictors[i-1]->last());
// Assume that the prediction for the newly added regions is the same as the
// ones at the (current) end of the array. Particularly predictions at the end
// of this array fairly seldom get updated, so having a better initial value
// that is at least somewhat related to the actual application is preferable.
double new_pred = _surv_rate_predictors[i-1]->last();
_surv_rate_predictors[i]->add(new_pred);
_accum_surv_rate_pred[i] = _accum_surv_rate_pred[i-1] + new_pred;
}
}
Expand Down

0 comments on commit 0cc9d33

Please sign in to comment.