RFR: Allow old collections to span degenerated young collections

William Kemper wkemper at openjdk.java.net
Wed Mar 16 18:18:07 UTC 2022


Prior to this change, a degenerated young cycle would cause an old collection effort to be abandoned. 

Summary of changes:
* Resetting state of old GC during cancellation has been consolidated
* When old marking is in progress, SATB queues are serviced during init mark of concurrent cycles (bug fix)
* Old GC cannot be interrupted between end of final mark and final roots (bug fix)

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

Commit messages:
 - Merge branch 'shenandoah' into young-degen-during-old-mark
 - Revert "Mutator may fail to evacuate"
 - Old generation collection does not use degeneration point
 - Change misleading method name
 - Purge SATB when degenerated cycle begins from outside of concurrent cycle
 - Allow degenerated bootstrap cycles and cancel old gc for concurrent global cycles
 - Only transfer old SATB pointers at start of init mark
 - Only cancel old gc for full GC in generational mode
 - Manage satb buffers at start of degenerated cycle
 - Do not interrupt old GC before clearing weak roots
 - ... and 15 more: https://git.openjdk.java.net/shenandoah/compare/98b21327...0cd5ecdf

Changes: https://git.openjdk.java.net/shenandoah/pull/124/files
 Webrev: https://webrevs.openjdk.java.net/?repo=shenandoah&pr=124&range=00
  Stats: 194 lines in 16 files changed: 95 ins; 55 del; 44 mod
  Patch: https://git.openjdk.java.net/shenandoah/pull/124.diff
  Fetch: git fetch https://git.openjdk.java.net/shenandoah pull/124/head:pull/124

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


More information about the shenandoah-dev mailing list