[PATCH v2 0/2] Map MAP_STACK to VM_NOHUGEPAGE only if THP is enabled

Ignacio Moreno Gonzalez via B4 Relay posted 2 patches 4 months, 3 weeks ago
include/linux/huge_mm.h | 6 ++++++
include/linux/mman.h    | 2 ++
2 files changed, 8 insertions(+)
[PATCH v2 0/2] Map MAP_STACK to VM_NOHUGEPAGE only if THP is enabled
Posted by Ignacio Moreno Gonzalez via B4 Relay 4 months, 3 weeks ago
... and make setting MADV_NOHUGEPAGE with madvise() into a no-op if THP
is not enabled.

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>
---
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-thp-is-enabled-v1-1-113cc634cd51@kuka.com

---
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>
Re: [PATCH v2 0/2] Map MAP_STACK to VM_NOHUGEPAGE only if THP is enabled
Posted by Lorenzo Stoakes 4 months, 3 weeks ago
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-thp-is-enabled-v1-1-113cc634cd51@kuka.com

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>
>
>
Re: [PATCH v2 0/2] Map MAP_STACK to VM_NOHUGEPAGE only if THP is enabled
Posted by Ignacio Moreno Gonzalez 4 months, 3 weeks ago
On 5/6/2025 4:28 PM, Lorenzo Stoakes wrote:
> This bit probably belongs after the rest without ellipses :P but it's not
> important.

I was not sure about modifying the subject for v2. Let me know if I should change it ;)

> The series looks good to me, thanks!

Thank you too for reviewing it!
Re: [PATCH v2 0/2] Map MAP_STACK to VM_NOHUGEPAGE only if THP is enabled
Posted by Lorenzo Stoakes 4 months, 3 weeks ago
On Tue, May 06, 2025 at 05:12:37PM +0200, Ignacio Moreno Gonzalez wrote:
> On 5/6/2025 4:28 PM, Lorenzo Stoakes wrote:
> > This bit probably belongs after the rest without ellipses :P but it's not
> > important.
>
> I was not sure about modifying the subject for v2. Let me know if I should change it ;)

Ahhh I see that's why you did that haha. I think for something this small it's
fine.

>
> > The series looks good to me, thanks!
>
> Thank you too for reviewing it!

No problem! Thanks for the series! :)