RFR: Add generations to freeset [v8]

William Kemper wkemper at openjdk.org
Thu Apr 20 18:06:32 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/shenandoahFreeSet.cpp line 125:

> 123: 
> 124: 
> 125: HeapWord* ShenandoahFreeSet::allocate_old_with_affiliation(ShenandoahAffiliation affiliation,

Will `affiliation` always be `old` here? Should we remove this parameter?

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

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


More information about the shenandoah-dev mailing list