Skip to content

erts: Support transparent huge pages on AArch64 - #11947

Draft
jicee13 wants to merge 1 commit into
erlang:masterfrom
jicee13:aarch64-thp
Draft

jicee13 wants to merge 1 commit into
erlang:masterfrom
jicee13:aarch64-thp

Conversation

@jicee13

@jicee13 jicee13 commented Oct 23, 2026

Copy link
Copy Markdown

Enable the existing +MMlp on option for Linux/AArch64 super carriers.

Use 2 MiB alignment for physically reserved super carriers when the kernel
enables that multi-size THP size, including when its policy is inherit.
This avoids using the 512 MiB
PMD size on 64 KiB-page kernels. Unavailable or disabled policies retain
normal alignment. Actual huge-page allocation remains up to the kernel.

Keep x86 linker alignment and executable-text advice unchanged. No AsmJit
or JIT allocator changes are included.

Testing:

  • AArch64 and x86 optimized/debug compilation.
  • alloc_SUITE: AArch64 optimized and x86 optimized/debug, 13 passed each.
  • Policy-selection tests and native AArch64 alignment/advice checks.
  • Regenerated configure with Autoconf 2.72; ERTS documentation built on both
    architectures; git diff --check passed.
  • Scoped otp_build check passed, including emulator test compilation and
    license checks (AArch64 optimized; x86 optimized/debug).

Draft limitations: full otp_build check is not green;
JIT formatting and documentation-tool checks have unrelated failures.
Actual 2 MiB huge-page allocation still needs validation on an enabled kernel.

Enable Linux THP support for AArch64 super carriers through +MMlp.

Use enabled 2 MiB multi-size THP instead of the PMD size, which can
be 512 MiB with 64 KiB base pages. Honor the per-size policy, including
inherit, and retain normal alignment when unavailable or disabled.

Keep linker alignment and executable-text advice x86-only.
Extend allocator coverage for +MMlp on/off and document the behavior.

Signed-off-by: Jayce Mang <jicee13@meta.com>
@github-actions

Copy link
Copy Markdown
Contributor

CT Test Results

Tests are running... https://github.com/erlang/otp/actions/runs/39997907332

Results for commit 39cab99

To speed up review, make sure that you have read Contributing to Erlang/OTP and that all checks pass.

See the TESTING and DEVELOPMENT HowTo guides for details about how to run test locally.

Artifacts

  • No CT logs found
  • No HTML docs found
  • No Windows Installer found

// Erlang/OTP Github Action Bot

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant