Re: [PATCH] mm: fix the incorrect hugepages count

From: zhong jiang
Date: Tue Aug 09 2016 - 06:36:19 EST


On 2016/8/9 1:14, Mike Kravetz wrote:
> On 08/07/2016 07:49 PM, zhongjiang wrote:
>> From: zhong jiang <zhongjiang@xxxxxxxxxx>
>>
>> when memory hotplug enable, free hugepages will be freed if movable node offline.
>> therefore, /proc/sys/vm/nr_hugepages will be incorrect.
>>
>> The patch fix it by reduce the max_huge_pages when the node offline.
>>
>> Signed-off-by: zhong jiang <zhongjiang@xxxxxxxxxx>
>> ---
>> mm/hugetlb.c | 1 +
>> 1 file changed, 1 insertion(+)
>>
>> diff --git a/mm/hugetlb.c b/mm/hugetlb.c
>> index f904246..3356e3a 100644
>> --- a/mm/hugetlb.c
>> +++ b/mm/hugetlb.c
>> @@ -1448,6 +1448,7 @@ static void dissolve_free_huge_page(struct page *page)
>> list_del(&page->lru);
>> h->free_huge_pages--;
>> h->free_huge_pages_node[nid]--;
>> + h->max_huge_pages--;
>> update_and_free_page(h, page);
>> }
>> spin_unlock(&hugetlb_lock);
>>
> Adding Naoya as he was the original author of this code.
>
> >From quick look it appears that the huge page will be migrated (allocated
> on another node). If my understanding is correct, then max_huge_pages
> should not be adjusted here.
>
we need to take free hugetlb pages into account. of course, the allocated huge pages is no
need to reduce. The patch just reduce the free hugetlb pages count.

Thanks
zhongjiang