RFR: 8317371: GenShen: Needs improved support for humongous allocation

Kelvin Nilsen kdnilsen at openjdk.org
Mon Oct 9 17:43:01 UTC 2023


Several improvements:
1. If there is a humongous allocation failure, go immediately to Full GC rather than trying 64 degenerated GC first
2. Reduce likelihood of humongous allocation errors by:
    a. Allocating regular objects from top end of memory while allocating humongous from bottom end of memory
    b. (Especially) in the case that regular regions that are promoted in place reside within the bottom end of memory, detect that old-gen memory has become fragmented and trigger old-gen GC, which will make a special effort to move these out-of-place old-gen regions to higher addresses.

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

Commit messages:
 - Fix whitespace
 - Fix accounting of mixed evac regions added to defragment old-gen for logging
 - Cleanup code for upstream
 - Fix mismatched brace
 - Misc improvements to make humongous allocation support more performant
 - Fix signed iteration termination bug
 - Add instrumentation to help debug
 - Improvements to support humongous allocation

Changes: https://git.openjdk.org/shenandoah/pull/336/files
 Webrev: https://webrevs.openjdk.org/?repo=shenandoah&pr=336&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8317371
  Stats: 264 lines in 11 files changed: 213 ins; 6 del; 45 mod
  Patch: https://git.openjdk.org/shenandoah/pull/336.diff
  Fetch: git fetch https://git.openjdk.org/shenandoah.git pull/336/head:pull/336

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


More information about the shenandoah-dev mailing list