RFR: Fix preemption of coalesce and fill

Kelvin Nilsen kdnilsen at openjdk.org
Wed Nov 2 23:28:37 UTC 2022


It is necessary to check the return status of entry_coalesce_and_fill() during ShenandoahOldGeneration::prepare_gc().

Otherwise, when coalesce-and-fill is preempted before it is completed, we will reset the old-gen mark bitmap and invoke old_generation->set_mark_incomplete() before the coalesce-and-fill effort is resumed.  This results in an assertion failure with debug builds, or incomplete coalesce-and-fill results with release builds.

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

Commit messages:
 - Merge remote-tracking branch 'GitFarmBranch/fix-preemption-of-coalesce-and-fill' into fix-preemption-of-coalesce-and-fill
 - Check for preemption of coalesce-and-fill during prep for old gc

Changes: https://git.openjdk.org/shenandoah/pull/166/files
 Webrev: https://webrevs.openjdk.org/?repo=shenandoah&pr=166&range=00
  Stats: 7 lines in 1 file changed: 3 ins; 2 del; 2 mod
  Patch: https://git.openjdk.org/shenandoah/pull/166.diff
  Fetch: git fetch https://git.openjdk.org/shenandoah pull/166/head:pull/166

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


More information about the shenandoah-dev mailing list