Re: [PATCH v3 03/12] mm/huge_memory: move THP gfp limit helper into header
From: Kairui Song
Date: Tue Apr 21 2026 - 13:22:54 EST
On Tue, Apr 21, 2026 at 9:14 PM Zi Yan <ziy@xxxxxxxxxx> wrote:
>
> On 21 Apr 2026, at 2:16, Kairui Song via B4 Relay wrote:
>
> > From: Kairui Song <kasong@xxxxxxxxxxx>
> >
> > Shmem has some special requirements for THP GFP and has to limit it in
> > certain zones or provide a more lenient fallback.
> >
> > We'll use this helper for generic swap THP allocation, which needs to
> > support shmem. For a typical GFP_HIGHUSER_MOVABLE swap-in, this helper
> > is basically a no-op. But it's necessary for certain shmem users, mostly
> > drivers.
> >
> > No feature change.
> >
> > Signed-off-by: Kairui Song <kasong@xxxxxxxxxxx>
> > ---
> > include/linux/huge_mm.h | 30 ++++++++++++++++++++++++++++++
> > mm/shmem.c | 30 +++---------------------------
> > 2 files changed, 33 insertions(+), 27 deletions(-)
> >
> > diff --git a/include/linux/huge_mm.h b/include/linux/huge_mm.h
> > index 2949e5acff35..ffe5a120eee4 100644
> > --- a/include/linux/huge_mm.h
> > +++ b/include/linux/huge_mm.h
> > @@ -237,6 +237,31 @@ static inline bool thp_vma_suitable_order(struct vm_area_struct *vma,
> > return true;
> > }
> >
> > +/*
> > + * Make sure huge_gfp is always more limited than limit_gfp.
> > + * Some shmem users want THP allocation to be done less aggressively
> > + * and only in certain zone.
> > + */
> > +static inline gfp_t thp_limit_gfp_mask(gfp_t huge_gfp, gfp_t limit_gfp)
>
> Would it be better to rename it to thp_swap_limit_gfp_mask() or something
> more descriptive? I am just worried about misuses in the future due to
> the generic thp prefix.
Good idea, I wasn't sure if this might be helpful for any other user,
but for now naming it more descriptive does help to avoid misuse.
How about thp_shmem_limit_gfp_mask? Ordinary swap is fine with thp
gfp, only shmem is a bit special.
>
> Otherwise, LGTM.
>
> Reviewed-by: Zi Yan <ziy@xxxxxxxxxx>
Thanks!