RFR: 8346005: Parallel: Incorrect page size calculation with UseLargePages [v13]

Albert Mingkun Yang ayang at openjdk.org
Tue Oct 14 13:35:12 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

Albert Mingkun Yang has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains 17 additional commits since the last revision:

 - Merge branch 'master' into pgc-largepage
 - review
 - Merge branch 'master' into pgc-largepage
 - Merge branch 'master' into pgc-largepage
 - review
 - Merge branch 'master' into pgc-largepage
 - review
 - review
 - review
 - Merge branch 'master' into pgc-largepage
 - ... and 7 more: https://git.openjdk.org/jdk/compare/40320d03...273c2003

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/26700/files
  - new: https://git.openjdk.org/jdk/pull/26700/files/a6bafe71..273c2003

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=26700&range=12
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=26700&range=11-12

  Stats: 10072 lines in 144 files changed: 6226 ins; 3462 del; 384 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-gc-dev mailing list