Subject: Re: [PATCH v3 1/3] mm: rename alloc_pages_exact_node to __alloc_pages_node

From: Vlastimil Babka <[email-masked]>
Date: Fri, 31 Jul 2015 23:45:42 +0200

On 31.7.2015 23:25, David Rientjes wrote:
> On Thu, 30 Jul 2015, Vlastimil Babka wrote:
> 
>> diff --git a/mm/huge_memory.c b/mm/huge_memory.c
>> index aa58a32..56355f2 100644
>> --- a/mm/huge_memory.c
>> +++ b/mm/huge_memory.c
>> @@ -2469,7 +2469,7 @@ khugepaged_alloc_page(struct page **hpage, gfp_t gfp, struct mm_struct *mm,
>>  	 */
>>  	up_read(&mm->mmap_sem);
>>  
>> -	*hpage = alloc_pages_exact_node(node, gfp, HPAGE_PMD_ORDER);
>> +	*hpage = __alloc_pages_node(node, gfp, HPAGE_PMD_ORDER);
>>  	if (unlikely(!*hpage)) {
>>  		count_vm_event(THP_COLLAPSE_ALLOC_FAILED);
>>  		*hpage = ERR_PTR(-ENOMEM);
>> @@ -2568,9 +2568,7 @@ static void collapse_huge_page(struct mm_struct *mm,
>>  
>>  	VM_BUG_ON(address & ~HPAGE_PMD_MASK);
>>  
>> -	/* Only allocate from the target node */
>> -	gfp = alloc_hugepage_gfpmask(khugepaged_defrag(), __GFP_OTHER_NODE) |
>> -		__GFP_THISNODE;
>> +	gfp = alloc_hugepage_gfpmask(khugepaged_defrag(), 0);
>>  
>>  	/* release the mmap_sem read lock. */
>>  	new_page = khugepaged_alloc_page(hpage, gfp, mm, vma, address, node);
> 
> Hmm, where is the __GFP_THISNODE enforcement in khugepaged_alloc_page() 
> that is removed in collapse_huge_page()?  I also don't see what happened 
> to the __GFP_OTHER_NODE.

Crap, I messed up with git, this hunk was supposed to be gone. Thanks for
noticing. Please apply without the collapse_huge_page hunk, or tell me to resend
once more.