RFR: 8346005: Parallel: Incorrect page size calculation with UseLargePages
Albert Mingkun Yang
ayang at openjdk.org
Fri Aug 8 14:57:20 UTC 2025
Refactor the heap-space and OS memory interface code to clearly separate two related but distinct concepts: `alignment` and `os-page-size`. These are now represented as two fields in `PSVirtualSpace`.
The parallel heap consists of four spaces: old, eden, from, and to. The first belongs to the old generation, while the latter three belong to the young generation.
The size of any space is always aligned to `alignment`, which also determines the unit for resizing. To keep the implementation simple while allowing flexible per-space commit and uncommit operations, each space must contain at least one OS page. As a result, `alignment` is always greater than or equal to `os-page-size`.
When using explicit large pages -- which require pre-allocating large pages before the VM starts -- the actual OS page size is not known until the heap has been reserved. The additional logic in `ParallelScavengeHeap::initialize` detects the OS page size in use and adjusts `alignment` if necessary.
Test: tier1–8
-------------
Commit messages:
- pgc-largepage
Changes: https://git.openjdk.org/jdk/pull/26700/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=26700&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8346005
Stats: 230 lines in 15 files changed: 82 ins; 91 del; 57 mod
Patch: https://git.openjdk.org/jdk/pull/26700.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/26700/head:pull/26700
PR: https://git.openjdk.org/jdk/pull/26700
More information about the hotspot-dev
mailing list