RFR: Refactor budgeting to make the logic cleaner

Kelvin Nilsen kdnilsen at openjdk.org
Tue Jun 28 13:50:15 UTC 2022


On Tue, 28 Jun 2022 11:49:00 GMT, Roman Kennke <rkennke at openjdk.org> wrote:

>> This commit consolidates computations related to budgeting of reserves for old-gen evacuation and old-gen promotion within shenandoahGeneration::prepare_regions_and_collection_set().  Previously, these computations had been scattered between several functional units, including shenandoahHeuristics::choose_collection_set() and shenandoahOldHeuristics::prime_collection_set().  A previous pull request brought some of the redundant functionality into prepare_regions_and_collection_set().  This pull request removes the redundant computations from the other locations.
>
> src/hotspot/share/gc/shenandoah/shenandoahHeap.inline.hpp line 689:
> 
>> 687: 
>> 688: void ShenandoahHeap::set_previous_promotion(size_t promoted_bytes) {
>> 689:   shenandoah_assert_heaplocked();
> 
> Is this related and/or relevant?

We can remove that.  It was "somewhat" related to the historical progression that eventually resulted in this refactoring code.  At one point in my development, I had accidentally tried to set_previous_promotion() without having the heap lock, and the results were unpredictable.

-------------

PR: https://git.openjdk.org/shenandoah/pull/148


More information about the shenandoah-dev mailing list