[PATCH v3 0/5] powerpc/mm: movable hotplug memory nodes

From: Reza Arbab
Date: Sun Sep 25 2016 - 14:38:29 EST

These changes enable the dynamic creation of movable nodes on power.

On x86, the ACPI SRAT memory affinity structure can mark memory
hotpluggable, allowing the kernel to possibly create movable nodes at

While power has no analog of this SRAT information, we can still create
a movable memory node, post boot, by hotplugging all of the node's
memory into ZONE_MOVABLE.

We provide a way to describe the extents and numa associativity of such
a node in the device tree, while deferring the memory addition to take
place through hotplug.

In v1, this patchset introduced a new dt compatible id to explicitly
create a memoryless node at boot. Here, things have been simplified to
be applicable regardless of the status of node hotplug on power. We
still intend to enable hotadding a pgdat, but that's now untangled as a
separate topic.

* Use Rob Herring's suggestions to improve the node availability check.

* More verbose commit log in the patch enabling CONFIG_MOVABLE_NODE.

* Add a patch to restore top-down allocation the way x86 does.

* http://lkml.kernel.org/r/1473883618-14998-1-git-send-email-arbab@xxxxxxxxxxxxxxxxxx

* Use the "status" property of standard dt memory nodes instead of
introducing a new "ibm,hotplug-aperture" compatible id.

* Remove the patch which explicitly creates a memoryless node. This set
no longer has any bearing on whether the pgdat is created at boot or
at the time of memory addition.

* http://lkml.kernel.org/r/1470680843-28702-1-git-send-email-arbab@xxxxxxxxxxxxxxxxxx

Reza Arbab (5):
drivers/of: introduce of_fdt_is_available()
drivers/of: do not add memory for unavailable nodes
powerpc/mm: allow memory hotplug into a memoryless node
powerpc/mm: restore top-down allocation when using movable_node
mm: enable CONFIG_MOVABLE_NODE on powerpc

Documentation/kernel-parameters.txt | 2 +-
arch/powerpc/mm/numa.c | 16 ++++------------
drivers/of/fdt.c | 29 ++++++++++++++++++++++++++---
include/linux/of_fdt.h | 2 ++
mm/Kconfig | 2 +-
5 files changed, 34 insertions(+), 17 deletions(-)