RFR: Add generations to freeset [v8]

William Kemper wkemper at openjdk.org
Thu Apr 20 18:00:47 UTC 2023


On Wed, 19 Apr 2023 15:27:57 GMT, Kelvin Nilsen <kdnilsen at openjdk.org> wrote:

>> ShenandoahFreeSet has not yet been modified to deal efficiently with the combination of old-gen and young-gen collection set reserves.  This PR makes changes so that we can distinguish between collector_is_free, old_collector_is_free, and mutator_is_free.  Further, it endeavors to keep each set of free regions tightly packed, so the range of regions representing each set is small.
>> 
>> In its current form, this no longer fails existing regression tests (except for known problems that are being addressed independently)
>
> Kelvin Nilsen has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 207 commits:
> 
>  - Merge remote-tracking branch 'origin' into add-generations-to-freeset
>  - Respond to reviewer feedback
>    
>    Various improvements suggested by reviewers.  Mostly improved comments
>    and some minor refactoring.
>  - Add TODO comment for exapnsion of old-gen
>  - Remove debug instrumentation
>  - Merge master
>  - Fix calculation of minimum fill size
>    
>    We were incorrectly using byte size rather than word size.
>  - Fix error in ShenandoahFreeSet usage accounting
>    
>    We were incorrectly increasing used for plab padding.  That is
>    old_collector memory and should not affect mutator usage.  This commit
>    also includes some refactoring, additional assertions, and additional
>    verification of consistent free-space accounting.
>  - Fix typo in a comment
>  - Fix white space
>  - Merge remote-tracking branch 'GitFarmBranch/add-generations-to-freeset' into add-generations-to-freeset
>  - ... and 197 more: https://git.openjdk.org/shenandoah/compare/016bf071...7319eeeb

src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp line 312:

> 310: 
> 311:     // Old regions are under marking, still need SATB barriers.
> 312:     OLD_MARKING_BITPOS = 5,

Are these trailing commas intentional?

src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp line 380:

> 378:   bool _upgraded_to_full;
> 379: 
> 380:   bool _has_evacuation_reserve_quantities;

Could we have a description of this new field in the header?

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

PR Review Comment: https://git.openjdk.org/shenandoah/pull/250#discussion_r1172924718
PR Review Comment: https://git.openjdk.org/shenandoah/pull/250#discussion_r1172925452


More information about the shenandoah-dev mailing list