summaryrefslogtreecommitdiff
path: root/mm
diff options
context:
space:
mode:
authorYuan Can <yuancan@huawei.com>2023-09-06 17:31:57 +0800
committerAndrew Morton <akpm@linux-foundation.org>2023-10-04 10:32:22 -0700
commit6a898c2757af1ac852bb917a0866d2724f303076 (patch)
tree95a81cb681a90b2145f6a0603c3f2342c5cf41cd /mm
parent7fa38d0ea00ffe2cd3c95c96c85221b8ae221875 (diff)
mm: hugetlb_vmemmap: allow alloc vmemmap pages fallback to other nodes
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>
Diffstat (limited to 'mm')
-rw-r--r--mm/hugetlb_vmemmap.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/mm/hugetlb_vmemmap.c b/mm/hugetlb_vmemmap.c
index 3e5387835ad6..0bde38626d25 100644
--- a/mm/hugetlb_vmemmap.c
+++ b/mm/hugetlb_vmemmap.c
@@ -320,8 +320,7 @@ static int vmemmap_remap_free(unsigned long start, unsigned long end,
.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