Integrated: 8346005: Parallel: Incorrect page size calculation with UseLargePages

Albert Mingkun Yang ayang at openjdk.org
Tue Oct 21 08:17:34 UTC 2025


On Fri, 8 Aug 2025 14:50:06 GMT, Albert Mingkun Yang <ayang at openjdk.org> wrote:

> 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

This pull request has now been integrated.

Changeset: 2be273f2
Author:    Albert Mingkun Yang <ayang at openjdk.org>
URL:       https://git.openjdk.org/jdk/commit/2be273f20f839980f22a74b88b74fc5754fa0c11
Stats:     238 lines in 15 files changed: 77 ins; 93 del; 68 mod

8346005: Parallel: Incorrect page size calculation with UseLargePages

Co-authored-by: Joel Sikström <jsikstro at openjdk.org>
Reviewed-by: jsikstro, fandreuzzi

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

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


More information about the hotspot-gc-dev mailing list