On 06/01/2017 10:37 AM, Michal Hocko wrote:
> From: Michal Hocko <mho...@suse.com>
> 
> Heiko Carstens has noticed that he can generate overlapping zones for
> ZONE_DMA and ZONE_NORMAL:
> DMA      [mem 0x0000000000000000-0x000000007fffffff]
> Normal   [mem 0x0000000080000000-0x000000017fffffff]
> 
> $ cat /sys/devices/system/memory/block_size_bytes
> 10000000
> $ cat /sys/devices/system/memory/memory5/valid_zones
> DMA
> $ echo 0 > /sys/devices/system/memory/memory5/online
> $ cat /sys/devices/system/memory/memory5/valid_zones
> Normal
> $ echo 1 > /sys/devices/system/memory/memory5/online
> Normal
> 
> $ cat /proc/zoneinfo
> Node 0, zone      DMA
> spanned  524288        <-----
> present  458752
> managed  455078
> start_pfn:           0 <-----
> 
> Node 0, zone   Normal
> spanned  720896
> present  589824
> managed  571648
> start_pfn:           327680 <-----
> 
> The reason is that we assume that the default zone for kernel onlining
> is ZONE_NORMAL. This was a simplification introduced by the memory
> hotplug rework and it is easily fixable by checking the range overlap in
> the zone order and considering the first matching zone as the default
> one. If there is no such zone then assume ZONE_NORMAL as we have been
> doing so far.
> 
> Fixes: "mm, memory_hotplug: do not associate hotadded memory to zones until 
> online"
> Reported-by: Heiko Carstens <heiko.carst...@de.ibm.com>
> Tested-by: Heiko Carstens <heiko.carst...@de.ibm.com>
> Signed-off-by: Michal Hocko <mho...@suse.com>

Acked-by: Vlastimil Babka <vba...@suse.cz>

Reply via email to