Re: [PATCH] mm: mmap: map MAP_STACK to VM_NOHUGEPAGE only if THP is enabled
From: Matthew Wilcox
Date: Fri May 02 2025 - 10:17:24 EST
On Fri, May 02, 2025 at 02:12:16PM +0100, Lorenzo Stoakes wrote:
> On Fri, May 02, 2025 at 02:03:48PM +0100, Matthew Wilcox wrote:
> > On Fri, May 02, 2025 at 11:31:41AM +0200, Ignacio Moreno Gonzalez via B4 Relay wrote:
> > > From: Ignacio Moreno Gonzalez <Ignacio.MorenoGonzalez@xxxxxxxx>
> > >
> > > commit c4608d1bf7c6 ("mm: mmap: map MAP_STACK to VM_NOHUGEPAGE") maps
> > > the mmap option MAP_STACK to VM_NOHUGEPAGE. This is also done if
> > > CONFIG_TRANSPARENT_HUGETABLES is not defined. But in that case, the
> > > VM_NOHUGEPAGE does not make sense. For instance, when calling madvise()
> > > with MADV_NOHUGEPAGE, an error is always returned.
> >
> > Isn't that the real problem though?
>
> Hmm, but wouldn't we want users who are trying to set MADV_[NO]HUGEPAGE to
> be made aware that it isn't going to do anything?
... I thought the patch was clear. Only setting NOHUGEPAGE becomes a
no-op. Setting HUGEPAGE remains EINVAL.
> And wouldn't changing this be a possibly 'breaking userspace' thing if
> somebody somewhere relies on this?
I don't see what userspace could rely on it returning EINVAL, since it
won't on a kernel which has THP enabled.
> Also this will make this inconsistent with e.g. MADV_COLLAPSE also?
Not sure how ...