RFR: 8313574: GenShen: Completing a global mark should also complete an old mark [v2]

Y. Srinivas Ramakrishna ysr at openjdk.org
Mon Aug 14 23:28:43 UTC 2023


On Mon, 14 Aug 2023 19:47:17 GMT, William Kemper <wkemper at openjdk.org> wrote:

>> The mark context is shared, but each generation maintains a separate flag (`ShenandoahGeneration::_is_marking_complete`) to record the status of the mark. The remembered set scan will use the mark bitmap only if the old generation mark is complete. Otherwise, it walks the old regions and requires them to be parseable.
>> 
>> Presently, we make the heap parseable after global marking finishes, but this work can be deferred to the start of an old mark if we had global mark record completion of old marking.
>
> William Kemper has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains five additional commits since the last revision:
> 
>  - Merge branch 'shenandoah-master' into global-completes-old-mark
>  - Fix assertions and update comments
>  - Prepare for mixed collections after global cycle
>  - Merge branch upstream into global-completes-old-mark
>  - Have global mark also complete young and old marks
>    
>    This will have the remembered set scan use the mark bitmap following a global mark and eliminates the need to coalesce and fill during a global collection.

Changes LGTM, modulo a few minor comments in previous set of comments.

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

Marked as reviewed by ysr (Committer).

PR Review: https://git.openjdk.org/shenandoah/pull/304#pullrequestreview-1577791481


More information about the shenandoah-dev mailing list