Skip to content

Add size-gated hugepage optimization for large allocations#291

Open
hsane-dev wants to merge 1 commit intogoogle:masterfrom
hsane-dev:hugepage-optimization
Open

Add size-gated hugepage optimization for large allocations#291
hsane-dev wants to merge 1 commit intogoogle:masterfrom
hsane-dev:hugepage-optimization

Conversation

@hsane-dev
Copy link

Summary

Adds proactive hugepage optimization to improve memory performance for allocations ≥2MB while preserving existing memory management behavior.

Changes

  • Modified MmapRegion::Alloc() in system_allocator.h to apply MADV_HUGEPAGE for large allocations
  • Added size gating (>= kHugePageSize) to avoid overhead on small allocations
  • Preserves existing MADV_NOHUGEPAGE logic for infrequent access patterns

@google-cla
Copy link

google-cla bot commented Feb 26, 2026

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.

@hsane-dev hsane-dev force-pushed the hugepage-optimization branch from c562ce0 to d24787f Compare February 26, 2026 18:02
This patch adds optional hugepage optimization by applying madvise(MADV_HUGEPAGE)
to allocations that are large enough to benefit from transparent hugepages.

Current behavior:
- Uses MADV_NOHUGEPAGE for infrequent access patterns, MADV_HUGEPAGE only for memory collapsing
- No proactive hugepages for large allocations

Enhanced behavior:
- Adds MADV_HUGEPAGE for allocations >= kHugePageSize (2MB)
- Only applies to allocations that can actually benefit from hugepages
- Avoids kernel overhead on small allocations

The size threshold ensures we only hint hugepage usage for allocations
that can actually be backed by hugepages, avoiding unnecessary kernel
overhead for smaller allocations.
@hsane-dev hsane-dev force-pushed the hugepage-optimization branch from d24787f to f0bf91a Compare February 26, 2026 19:30
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