Re: [PATCH 2/2] mm, memory_hotplug: do not assume ZONE_NORMAL is default kernel zone

From: Wei Yang
Date: Thu Jun 22 2017 - 21:39:07 EST


On Thu, Jun 22, 2017 at 08:16:57PM +0200, Michal Hocko wrote:
>>
>> Hmm... a corner case jumped into my mind which may invalidate this
>> calculation.
>>
>> The case is:
>>
>>
>> Zone: | DMA | DMA32 | NORMAL |
>> v v v v
>>
>> Phy mem: [ ] [ ]
>>
>> ^ ^ ^ ^
>> Node: | Node0 | | Node1 |
>> A B C D
>>
>>
>> The key point is
>> 1. There is a hole between Node0 and Node1
>> 2. The hole sits in a non-normal zone
>>
>> Let's mark the boundary as A, B, C, D. Then we would have
>> node0->zone[dma21] = [A, B]
>> node1->zone[dma32] = [C, D]
>>
>> If we want to hotplug a range in [B, C] on node0, it looks not that bad. While
>> if we want to hotplug a range in [B, C] on node1, it will introduce the
>> overlapped zone. Because the range [B, C] intersects none of the existing
>> zones on node1.
>>
>> Do you think this is possible?
>
>Yes, it is possible. I would be much more more surprised if it was real
>as well. Fixing that would require to use arch_zone_{lowest,highest}_possible_pfn
>which is not available after init section disappears and I am not even
>sure we should care. I would rather wait for a real life example of such
>a configuration to fix it.

Yep, not easy to fix, so wait for real case.

Or possible to add a line in commit log?

>--
>Michal Hocko
>SUSE Labs

--
Wei Yang
Help you, Help me

Attachment: signature.asc
Description: PGP signature