Re: [PATCH v7 3/5] mm/hugetlb: add support for mempolicy MPOL_PREFERRED_MANY

From: Michal Hocko
Date: Mon Aug 09 2021 - 09:19:38 EST


On Mon 09-08-21 20:37:47, Feng Tang wrote:
> On Mon, Aug 09, 2021 at 10:41:40AM +0200, Michal Hocko wrote:
> [snip]
> > > >From fc30718c40f02ba5ea73456af49173e66b5032c1 Mon Sep 17 00:00:00 2001
> > > From: Ben Widawsky <ben.widawsky@xxxxxxxxx>
> > > Date: Thu, 5 Aug 2021 23:01:11 -0400
> > > Subject: [PATCH] mm/hugetlb: add support for mempolicy MPOL_PREFERRED_MANY
> > >
> > > Implement the missing huge page allocation functionality while obeying the
> > > preferred node semantics. This is similar to the implementation for
> > > general page allocation, as it uses a fallback mechanism to try multiple
> > > preferred nodes first, and then all other nodes.
> > >
> > > To avoid adding too many "#ifdef CONFIG_NUMA" check, add a helper function
> > > in mempolicy.h to check whether a mempolicy is MPOL_PREFERRED_MANY.
> > >
> > > [akpm: fix compling issue when merging with other hugetlb patch]
> > > [Thanks to 0day bot for catching the !CONFIG_NUMA compiling issue]
> > > [Michal Hocko: suggest to remove the #ifdef CONFIG_NUMA check]
> > > Link: https://lore.kernel.org/r/20200630212517.308045-12-ben.widawsky@xxxxxxxxx
> > > Link: https://lkml.kernel.org/r/1627970362-61305-4-git-send-email-feng.tang@xxxxxxxxx
> > > Suggested-by: Michal Hocko <mhocko@xxxxxxxx>
> > > Signed-off-by: Ben Widawsky <ben.widawsky@xxxxxxxxx>
> > > Co-developed-by: Feng Tang <feng.tang@xxxxxxxxx>
> > > Signed-off-by: Feng Tang <feng.tang@xxxxxxxxx>
> >
> > Yeah. This looks much better. Thanks!
> > Acked-by: Michal Hocko <mhocko@xxxxxxxx>
>
> Thank you!
>
> > Do you think you can provide same helpers for other policies as well?
> > Maybe we can get rid of some other ifdefery as well.
>
> Sure. I can make separate patch(es) for that.
>
> And you mean helper like mpol_is_bind/default/local/preferred?
>
> I just run 'git-grep MPOL', and for places using "mode == MPOL_XXX",
> mostly they are in mempolicy.[ch], the only another place is in
> shmem.c, do we need to create all the helpers for it and the
> potential future users?

I would just go with those instances which need to ifdef for NUMA.
Thanks!
--
Michal Hocko
SUSE Labs