RFR: Handle old, pinned regions [v7]

William Kemper wkemper at openjdk.org
Wed Aug 3 01:10:57 UTC 2022


> Prior to this change, mixed collections were entirely ignoring the pinned status of old regions. Pinned old regions would not be coalesced and filled (which could lead to a crash) and their pin status was not being synchronized with the pin count (which could also lead to a crash). To address these problems, the following changes have been made:
> 
> * Before adding old regions to the collection set, their pinned status is synchronized.
> * Pinned old regions will _not_ be added to a mixed collection, they will be skipped and considered for inclusion in the next mixed collection.
> * Any old regions which have not been evacuated after the last mixed collection will be made parseable (coalesced and filled) _at the start of the next old marking cycle_.

William Kemper has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 21 commits:

 - Merge branch 'shenandoah-master' into fill-old-pinned
 - Do not drop abbreviated argument when recording success concurrent cycle
 - Fix whitespace
 - Prepare for review
 - Merge branch 'shenandoah-master' into fill-old-pinned
 - Validate old gen state transitions
 - Make use of old generation without down casting
 - Make verifier aware of changes to old generation state machine
 - Make rset scan aware of changes to old generation state machine
 - Fix use of index as count and over-counting of garbage
 - ... and 11 more: https://git.openjdk.org/shenandoah/compare/60e43d04...bdda91d6

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

Changes: https://git.openjdk.org/shenandoah/pull/149/files
 Webrev: https://webrevs.openjdk.org/?repo=shenandoah&pr=149&range=06
  Stats: 1178 lines in 29 files changed: 741 ins; 274 del; 163 mod
  Patch: https://git.openjdk.org/shenandoah/pull/149.diff
  Fetch: git fetch https://git.openjdk.org/shenandoah pull/149/head:pull/149

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


More information about the shenandoah-dev mailing list