RFR: 8236847: CDS archive with 4K alignment unusable on machines with 64k pages [v6]

Yumin Qi minqi at openjdk.java.net
Mon Mar 1 17:08:02 UTC 2021


> Hi, Please review
>   Usually most OSes are configured with page size of 4K, but some others are configured with 64K. If jdk binary is built on 4K platform and run on different configured platforms, CDS fails to be loaded due to region alignment mismatch:
>   Unable to map CDS archive -- os::vm_allocation_granularity() expected: 4096 actual: 65536
>   This change uses 64K as region alignment if OS page size is less than 64K. For most of the current OSes, means always use 64K as file map region alignment.
>    The archive size will increase about 300K due to the change. 
>    Tests: tier1-4
>               Run MacOS/X64 binary on MacOS/aarch64 
> 
>    Thanks
>    Yumin

Yumin Qi has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains six commits:

 - Merge master
 - Add --enable-compatible-cds-alignment for linux-aarch64 and macosx-x64 in jib job
 - Switch to enble compatible-cds-alignment at configuration
 - Make CDS core region alignment configurable at build time
 - Make 64K core region alignment only for specific platforms, also fixed comments as suggestions.
 - 8236847: CDS archive with 4K alignment unusable on machines with 64k pages

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

Changes: https://git.openjdk.java.net/jdk/pull/2651/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=2651&range=05
  Stats: 221 lines in 16 files changed: 161 ins; 16 del; 44 mod
  Patch: https://git.openjdk.java.net/jdk/pull/2651.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/2651/head:pull/2651

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


More information about the hotspot-runtime-dev mailing list