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

Axel Boldt-Christmas aboldtch at openjdk.org
Mon Jul 3 14:32:17 UTC 2023


Backport of JDK-8310743

> 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.

This pull request contains a backport of commit [f393975](https://github.com/openjdk/jdk/commit/f393975d1b9423835a7aa42f6ffc0656499701d7) from the [openjdk/jdk](https://git.openjdk.org/jdk) repository.
With merge conflict in `src/hotspot/share/gc/z/zPhysicalMemory.cpp` (header includes) resolved.

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

Commit messages:
 - Backport f393975d1b9423835a7aa42f6ffc0656499701d7

Changes: https://git.openjdk.org/jdk21/pull/92/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk21&pr=92&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/jdk21/pull/92.diff
  Fetch: git fetch https://git.openjdk.org/jdk21.git pull/92/head:pull/92

PR: https://git.openjdk.org/jdk21/pull/92


More information about the hotspot-gc-dev mailing list