RFR: 8310743: assert(reserved_rgn != nullptr) failed: Add committed region, No reserved region found

Axel Boldt-Christmas aboldtch at openjdk.org
Fri Jun 30 13:19:20 UTC 2023


JDK-8309675 tried to solve the issue of NMT reporting to much committed memory by faking the virtual addresses registered when committing physical memory. This mapping was simply the `virtual address  = physical offset in backing file + heap base`. This works when ZGC gets a contiguous heap which starts at the heap base. However fails if it does not start at the heap base or is discontiguous.

This proposal fixes this by keeping track of all the reserved virtual address ranges and by creating a mapping from the physical offsets to the actual reserved virtual address ranges. If the physical offsets committed maps to multiple reserved ranges, it is processed as multiple commits.

The develop flag `ZForceDiscontiguousHeapReservations` is introduced to test the discontiguous heap feature and interactions.

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

Commit messages:
 - 8310743: assert(reserved_rgn != nullptr) failed: Add committed region, No reserved region found

Changes: https://git.openjdk.org/jdk/pull/14730/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=14730&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8310743
  Stats: 477 lines in 12 files changed: 429 ins; 32 del; 16 mod
  Patch: https://git.openjdk.org/jdk/pull/14730.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/14730/head:pull/14730

PR: https://git.openjdk.org/jdk/pull/14730


More information about the hotspot-gc-dev mailing list