RFR: 8313574: GenShen: Completing a global mark should also complete an old mark [v2]
William Kemper
wkemper at openjdk.org
Mon Aug 14 19:47:17 UTC 2023
> 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:
- all: https://git.openjdk.org/shenandoah/pull/304/files
- new: https://git.openjdk.org/shenandoah/pull/304/files/be1bf322..2bf50f3f
Webrevs:
- full: https://webrevs.openjdk.org/?repo=shenandoah&pr=304&range=01
- incr: https://webrevs.openjdk.org/?repo=shenandoah&pr=304&range=00-01
Stats: 13236 lines in 641 files changed: 5149 ins; 4068 del; 4019 mod
Patch: https://git.openjdk.org/shenandoah/pull/304.diff
Fetch: git fetch https://git.openjdk.org/shenandoah.git pull/304/head:pull/304
PR: https://git.openjdk.org/shenandoah/pull/304
More information about the shenandoah-dev
mailing list