RFR: Degenerate to marking phase if cancellation detected after final mark

Roman Kennke rkennke at openjdk.java.net
Thu Jan 27 17:27:14 UTC 2022


On Thu, 27 Jan 2022 16:52:52 GMT, William Kemper <wkemper at openjdk.org> wrote:

> If an allocation failure occurs between the end of concurrent mark and the start of final mark, then the degenerate cycle resumes from the 'outside of cycle' degenerated point. For other modes, this is merely a performance problem (as described in [JDK-8261093](https://bugs.openjdk.java.net/browse/JDK-8261093)). For the generational mode, this is a correctness problem because the degenerated cycle will swap the remembered set cards again. Because the concurrent marking was incomplete, this could lose information about which cards should be dirty during the degenerated (re) mark.

Looks correct.

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

Marked as reviewed by rkennke (Lead).

PR: https://git.openjdk.java.net/shenandoah/pull/105


More information about the shenandoah-dev mailing list