R Reza Arbab #
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 boot. 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. v4: * Rename of_fdt_is_available() to of_fdt_device_is_available(). Rename of_flat_dt_is_available() to of_flat_dt_device_is_available(). * Instead of restoring top-down allocation, ensure it never goes bottom-up in the first place, by making movable_node arch-specific. * Use MEMORY_HOTPLUG instead of PPC64 in the mm/Kconfig patch. v3: * http://lkml.kernel.org/r/1474828616-16608-1-git-send-email-arbab@linux.vnet.ibm.com * 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. v2: * http://lkml.kernel.org/r/1473883618-14998-1-git-send-email-arbab@linux.vnet.ibm.com