Message ID | 20230906093157.9737-1-yuancan@huawei.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | mm: hugetlb_vmemmap: allow alloc vmemmap pages fallback to other nodes | expand |
> On Sep 6, 2023, at 17:31, Yuan Can <yuancan@huawei.com> wrote: > > 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. BTW: it is not a fatal error, so there is no need to backport. > > Suggested-by: Mike Kravetz <mike.kravetz@oracle.com> > Suggested-by: Muchun Song <songmuchun@bytedance.com> > Signed-off-by: Yuan Can <yuancan@huawei.com> Reviewed-by: Muchun Song <songmuchun@bytedance.com> Thanks.
On 09/06/23 17:31, Yuan Can wrote: > 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. > > Suggested-by: Mike Kravetz <mike.kravetz@oracle.com> > Suggested-by: Muchun Song <songmuchun@bytedance.com> > Signed-off-by: Yuan Can <yuancan@huawei.com> > --- > mm/hugetlb_vmemmap.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) Thanks, Reviewed-by: Mike Kravetz <mike.kravetz@oracle.com>
diff --git a/mm/hugetlb_vmemmap.c b/mm/hugetlb_vmemmap.c index c2007ef5e9b0..27fc65b8e37e 100644 --- a/mm/hugetlb_vmemmap.c +++ b/mm/hugetlb_vmemmap.c @@ -325,8 +325,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
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. Suggested-by: Mike Kravetz <mike.kravetz@oracle.com> Suggested-by: Muchun Song <songmuchun@bytedance.com> Signed-off-by: Yuan Can <yuancan@huawei.com> --- mm/hugetlb_vmemmap.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)