On Tue, May 06, 2025 at 03:44:31PM +0200, Ignacio Moreno Gonzalez via B4 Relay wrote:
... and make setting MADV_NOHUGEPAGE with madvise() into a no-op if THP is not enabled.
This bit probably belongs after the rest without ellipses :P but it's not important.
I discovered this issue when trying to use the tool CRIU to checkpoint and restore a container. Our running kernel is compiled without CONFIG_TRANSPARENT_HUGETABLES. CRIU parses the output of /proc/<pid>/smaps and saves the "nh" flag. When trying to restore the container, CRIU fails to restore the "nh" mappings, since madvise() MADV_NOHUGEPAGE always returns an error because CONFIG_TRANSPARENT_HUGETABLES is not defined.
These patches:
- Avoid mapping MAP_STACK to VM_NOHUGEPAGE if !THP
- Avoid returning an error when calling madvise() with MADV_NOHUGEPAGE if !THP
Signed-off-by: Ignacio Moreno Gonzalez Ignacio.MorenoGonzalez@kuka.com
The series looks good to me, thanks!
Applies cleanly, builds fine, all selftests tests passing etc.
Changes in v2:
[Patch 1/2] Use '#ifdef' instead of '#if defined(...)'
[Patch 1/2] Add 'Fixes: c4608d1bf7c6...'
Create [Patch 2/2]
Link to v1: https://lore.kernel.org/r/20250502-map-map_stack-to-vm_nohugepage-only-if-th...
Thanks for the summary!
Ignacio Moreno Gonzalez (2): mm: mmap: map MAP_STACK to VM_NOHUGEPAGE only if THP is enabled mm: madvise: no-op for MADV_NOHUGEPAGE if THP is disabled
include/linux/huge_mm.h | 6 ++++++ include/linux/mman.h | 2 ++ 2 files changed, 8 insertions(+)
base-commit: fc96b232f8e7c0a6c282f47726b2ff6a5fb341d2 change-id: 20250428-map-map_stack-to-vm_nohugepage-only-if-thp-is-enabled-ce40a1de095d
Best regards,
Ignacio Moreno Gonzalez Ignacio.MorenoGonzalez@kuka.com