Re: [PATCH] mm/page_alloc: add zone to zonelist if populated

From: Wei Yang
Date: Sat Feb 05 2022 - 21:11:31 EST


On Thu, Feb 03, 2022 at 10:25:51AM +0100, David Hildenbrand wrote:
>On 03.02.22 03:00, Wei Yang wrote:
>> During memory hotplug, when online/offline a zone, we need to rebuild
>> the zonelist for all nodes. Current behavior would lose a valid zone in
>> zonelist since only pick up managed_zone.
>>
>> There are two cases for a zone with memory but still !managed.
>>
>> * all pages were allocated via memblock
>> * all pages were taken by ballooning / virtio-mem
>>
>> This state maybe temporary, since both of them may release some memory.
>> Then it end up with a managed zone not in zonelist.
>>
>> This is introduced in 'commit 6aa303defb74 ("mm, vmscan: only allocate
>> and reclaim from zones with pages managed by the buddy allocator")'.
>> This patch restore the behavior.
>>
>> Signed-off-by: Wei Yang <richard.weiyang@xxxxxxxxx>
>> CC: Mel Gorman <mgorman@xxxxxxxxxxxxxxxxxxx>
>> CC: David Hildenbrand <david@xxxxxxxxxx>
>> Fixes: 6aa303defb74 ("mm, vmscan: only allocate and reclaim from zones with pages managed by the buddy allocator")
>
>That commit mentions that there used to be some ppc64 cases with fadump
>where it might have been a real problem. Unfortunately, that commit
>doesn't really tell what the performance implications are.
>

It mentioned a 100% CPU usage by commit 1d82de618ddd. Currently I don't find
which part introduced this and how it is fixed.

>We'd have to know how many "permanent memblock" allocations we have,
>that can never get freed.
>

For the case in that commit, the memory are reserved for crash kernel. I am
afraid this never get freed.

But for all the cases, I am not sure.

--
Wei Yang
Help you, Help me