RFR: 8257901: ZGC: Take virtual memory usage into account when sizing heap

Per Liden pliden at openjdk.java.net
Tue Dec 8 13:46:21 UTC 2020


MaxVirtMemFraction limits the amount of address space the GC should use for the heap. This is used by the heuristics in Arguments::set_heap_size() to select an appropriate default max heap size. However, that heuristic can select a max heap size that will not fit with ZGC, since ZGC uses additional address space (for multi-mapping and the virtual-to-physical ratio). As a result, if the address space is limited, and -Xmx is not specified, then ZGC might refuse to start with the error:

"Failed to reserve enough address space for Java heap"

I propose we abstract MaxVirtMemFraction to make it configurable for each GC, so that the heuristics in Arguments::set_heap_size() will pick a default max heap size that also works for ZGC.

Testing: Manual testing using different ulimit -v sizes.

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

Commit messages:
 - 8257901: ZGC: Take virtual memory usage into account when sizing heap

Changes: https://git.openjdk.java.net/jdk/pull/1696/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=1696&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8257901
  Stats: 17 lines in 6 files changed: 15 ins; 0 del; 2 mod
  Patch: https://git.openjdk.java.net/jdk/pull/1696.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/1696/head:pull/1696

PR: https://git.openjdk.java.net/jdk/pull/1696


More information about the hotspot-dev mailing list