Skip to content

PS-10595 [8.4]: Add innodb_large_page_populate to control huge page pre-population#6036

Open
polchawa-percona wants to merge 1 commit into
percona:8.4from
polchawa-percona:PS-10595-8.4-large-page-populate
Open

PS-10595 [8.4]: Add innodb_large_page_populate to control huge page pre-population#6036
polchawa-percona wants to merge 1 commit into
percona:8.4from
polchawa-percona:PS-10595-8.4-large-page-populate

Conversation

@polchawa-percona

Copy link
Copy Markdown
Contributor

https://perconadev.atlassian.net/browse/PS-10595

This patch is a contribution from Alexey Bychko abychko@gmail.com.

Introduce a new InnoDB boolean system variable innodb_large_page_populate
(Linux only) that controls whether huge pages and page-aligned allocations
used by the buffer pool and the page allocator are pre-populated at allocation
time.

When OFF (default), large_page_aligned_alloc() and page_aligned_alloc()
skip MAP_POPULATE and the explicit prefault step by masking the caller's
populate request with the global flag. This reduces startup time and
NUMA-related overhead on large systems with huge pages. When ON, the previous
behavior (honor the caller's populate request) is preserved.

The backing global is named srv_large_page_populate, following the srv_
naming convention used by other InnoDB globals. On non-Linux platforms the flag
is a compile-time constant true, so behavior there is unchanged.

…re-population

https://perconadev.atlassian.net/browse/PS-10595

Introduce a new InnoDB boolean system variable innodb_large_page_populate
(Linux only) that controls whether huge pages and page-aligned allocations
used by the buffer pool and the page allocator are pre-populated at
allocation time.

When OFF (default), large_page_aligned_alloc() and page_aligned_alloc()
skip MAP_POPULATE and the explicit prefault step by masking the caller's
populate request with the global flag. This reduces startup time and
NUMA-related overhead on large systems with huge pages. When ON, the
previous behavior (honor the caller's populate request) is preserved.

The backing global is named srv_large_page_populate, following the srv_
naming convention used by other InnoDB globals. On non-Linux platforms the
flag is a compile-time constant true, so behavior there is unchanged.
@polchawa-percona polchawa-percona changed the title PS-10595 (8.4) Add innodb_large_page_populate to control huge page pre-population PS-10595 [8.4]: Add innodb_large_page_populate to control huge page pre-population Jun 25, 2026
@polchawa-percona polchawa-percona self-assigned this Jun 25, 2026
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.

2 participants