RFR: Fix fullgc

Kelvin Nilsen kdnilsen at openjdk.java.net
Wed Jun 8 22:05:30 UTC 2022


Two errors were recently discovered in the generational-mode implementation of FullGC:

1. There was an off-by-one error which caused full-gc to promote one cycle later than intent.
2. During a post-compaction phase of full-gc, certain old-gen regions were relabeled as young-gen, sometimes resulting in young-gen having usage above its capacity.  When this occurs, further allocations are blocked because available within young-gen is zero (actually is negative).

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

Commit messages:
 - Fix Full GC
 - Start young collect instead of old if mixed evacuations are pending
 - Filter out invalid pointers picked up by old gen SATB
 - Log messages for old and young only if is generational
 - Add log messages to degen and fuill GC
 - Do not make_regular_bypass without heap lock
 - Insert instrumentation for further testing
 - Fix full gc
 - Merge branch 'shenandoah-master' into shenandoah
 - Merge branch 'shenandoah-master' into shenandoah
 - ... and 10 more: https://git.openjdk.java.net/shenandoah/compare/5473b079...2a3943ce

Changes: https://git.openjdk.java.net/shenandoah/pull/142/files
 Webrev: https://webrevs.openjdk.java.net/?repo=shenandoah&pr=142&range=00
  Stats: 75 lines in 5 files changed: 25 ins; 7 del; 43 mod
  Patch: https://git.openjdk.java.net/shenandoah/pull/142.diff
  Fetch: git fetch https://git.openjdk.java.net/shenandoah pull/142/head:pull/142

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


More information about the shenandoah-dev mailing list