RFR: 8332514: Allow class space size to be larger than 3GB

Thomas Stuefe stuefe at openjdk.org
Thu May 23 15:42:26 UTC 2024


Class space size is capped at 3GB. Technically, the Klass encoding range is 4GB.

We cap class space at 3GB to leave breathing room for CDS. However, CDS needs a lot less, so we waste address space. In addition, class space is unnecessarily capped at 3GB even if we run without CDS, which is unnecessary.

What we should do instead:
- if CDS is off, use the full 4GB
- if CDS is on, use as much memory as we can after accommodating the archive

This patch implements that new behavior. 

Now, we can have 4GB class space without CDS; with CDS, a bit less (depends on the CDS archive size; by default, on MacOS, we reach about 3.98GB).

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

Commit messages:
 - fix 32-bit (why is this not a 64-bit only option)
 - JDK-8332514-Allow-class-space-size-to-be-larger-than-3GB-if-possible

Changes: https://git.openjdk.org/jdk/pull/19347/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=19347&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8332514
  Stats: 39 lines in 3 files changed: 32 ins; 0 del; 7 mod
  Patch: https://git.openjdk.org/jdk/pull/19347.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/19347/head:pull/19347

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


More information about the hotspot-runtime-dev mailing list