在 2023/9/6 14:52, Muchun Song 写道: > >> On Sep 6, 2023, at 14:34, Yuan Can wrote: >> >> When vmemmap pages allocation failed, the hugetlb pages fail to free, >> which is not an fatel error, so avoid the allocation failure report by >> passing __GFP_NOWARN in gfp_mask. > You have misunderstand me and Mike. We mean the memory allocation > in vmemmap_remap_free() which also use __GFP_THISNODE, it has the > same issue as you fixed in another thread. But the failure of memory > allocation is not fetal. And it is better to remove __GFP_THISNODE > as well. > > Thanks. Ok, sorry about this, I will send another patch to remove __GFP_THISNODE in vmemmap_remap_free, and I would like to know is it ok to add __GFP_NOWARN in alloc_vmemmap_page_list()? Thanks. >> Suggested-by: Mike Kravetz >> Suggested-by: Muchun Song >> Signed-off-by: Yuan Can >> --- >> mm/hugetlb_vmemmap.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/mm/hugetlb_vmemmap.c b/mm/hugetlb_vmemmap.c >> index 0485e471d224..3fa6b6e2bf45 100644 >> --- a/mm/hugetlb_vmemmap.c >> +++ b/mm/hugetlb_vmemmap.c >> @@ -386,7 +386,7 @@ static int vmemmap_remap_free(unsigned long start, unsigned long end, >> static int alloc_vmemmap_page_list(unsigned long start, unsigned long end, >> struct list_head *list) >> { >> - gfp_t gfp_mask = GFP_KERNEL | __GFP_RETRY_MAYFAIL; >> + gfp_t gfp_mask = GFP_KERNEL | __GFP_RETRY_MAYFAIL | __GFP_NOWARN; >> unsigned long nr_pages = (end - start) >> PAGE_SHIFT; >> int nid = page_to_nid((struct page *)start); >> struct page *page, *next; >> -- >> 2.17.1 >> -- Best regards, Yuan Can