blob: 70cd3cb56043fb801d8b96944fa093b3807561f7 [file] [log] [blame]
From: Yuan Can <yuancan@huawei.com>
Subject: mm: hugetlb_vmemmap: allow alloc vmemmap pages fallback to other nodes
Date: Wed, 6 Sep 2023 17:31:57 +0800
In vmemmap_remap_free(), a new head vmemmap page is allocated to avoid
breaking a contiguous block of struct page memory, however, the allocation
can always fail when the given node is movable node. Remove the
__GFP_THISNODE to help avoid fragmentation.
Link: https://lkml.kernel.org/r/20230906093157.9737-1-yuancan@huawei.com
Signed-off-by: Yuan Can <yuancan@huawei.com>
Suggested-by: Mike Kravetz <mike.kravetz@oracle.com>
Reviewed-by: Mike Kravetz <mike.kravetz@oracle.com>
Suggested-by: Muchun Song <songmuchun@bytedance.com>
Reviewed-by: Muchun Song <songmuchun@bytedance.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
mm/hugetlb_vmemmap.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
--- a/mm/hugetlb_vmemmap.c~mm-hugetlb_vmemmap-allow-alloc-vmemmap-pages-fallback-to-other-nodes
+++ a/mm/hugetlb_vmemmap.c
@@ -320,8 +320,7 @@ static int vmemmap_remap_free(unsigned l
.vmemmap_pages = &vmemmap_pages,
};
int nid = page_to_nid((struct page *)start);
- gfp_t gfp_mask = GFP_KERNEL | __GFP_THISNODE | __GFP_NORETRY |
- __GFP_NOWARN;
+ gfp_t gfp_mask = GFP_KERNEL | __GFP_NORETRY | __GFP_NOWARN;
/*
* Allocate a new head vmemmap page to avoid breaking a contiguous
_