On Mon, Sep 19, 2016 at 11:59:35AM +0530, Aneesh Kumar K.V wrote:
Movable node also does.
What is the impact of that. Do we need changes equivalent to that ? Also
where are we marking the nodes which can be hotplugged, ie where do we
do memblock_mark_hotplug() ?
These are related to the mechanism x86 uses to create movable nodes at
boot. The SRAT is parsed to mark any hotplug memory. That marking is
used later when initializing ZONE_MOVABLE for each node. 
The bottom-up allocation is due to a timing issue . There is a window
where kernel memory may be allocated before the SRAT is parsed. Any
bottom-up allocations done during that time will likely be in the same
(nonmovable) node as the kernel image.
On power, I don't think we have a heuristic equivalent to that SRAT
memory hotplug info. So, we'll be limited to dynamically adding movable
nodes after boot.
2. commit 79442ed189ac ("mm/memblock.c: introduce bottom-up allocation