RFR: Preempt old preparation
Kelvin Nilsen
kdnilsen at openjdk.java.net
Tue Oct 12 21:34:38 UTC 2021
Previously, all old-gen regions not selected as collection set candidates were "made parseable" during the final-mark safepoint. Making each of these regions parseable involves coalescing consecutive unmarked objects into contiguous larger objects that contain no pointers. The process of identifying each span of consecutive unmarked objects within a large number of large heap regions was found to require hundreds of ms in some cases. This patch changes the behavior so that preparation of heap regions for subsequent evacuation is performed during a concurrent phase of operation. This concurrent phase must complete before any of the old heap regions placed in the candidate collection set can be evacuated.
-------------
Commit messages:
- Cleanup white space
- Undo gratuitous cosmetic changes
- Remove instrumentation
- Fix syntax errors from merge
- Merge branch 'shenandoah' of ssh://git.amazon.com/pkg/OpenJDKTipSrc into preempt-old-preparation
- Undef instrumentation
- Fix up resumption of mixed-evac preparation
- Make coalesce-and-fill effort preemptible
Changes: https://git.openjdk.java.net/shenandoah/pull/88/files
Webrev: https://webrevs.openjdk.java.net/?repo=shenandoah&pr=88&range=00
Stats: 203 lines in 13 files changed: 128 ins; 11 del; 64 mod
Patch: https://git.openjdk.java.net/shenandoah/pull/88.diff
Fetch: git fetch https://git.openjdk.java.net/shenandoah pull/88/head:pull/88
PR: https://git.openjdk.java.net/shenandoah/pull/88
More information about the shenandoah-dev
mailing list