On Tue, Feb 27, 2024 at 09:52:26PM +0800, Baolin Wang wrote: > --- a/mm/hugetlb.c > +++ b/mm/hugetlb.c > @@ -2567,13 +2567,38 @@ static struct folio *alloc_surplus_hugetlb_folio(struct hstate *h, > } > > static struct folio *alloc_migrate_hugetlb_folio(struct hstate *h, gfp_t gfp_mask, > - int nid, nodemask_t *nmask) > + int nid, nodemask_t *nmask, int reason) I still dislike taking the reason argument this far, and I'd rather have this as a boolean specifing whether we allow fallback on other nodes. That would mean parsing the reason in alloc_migration_target(). If we don't add a new helper e.g: gfp_allow_fallback(), we can just do it right there an opencode it with a e.g: macro etc. Although doing it in an inline helper might help hiding these details. That's my take on this, but let's see what others have to say. -- Oscar Salvador SUSE Labs