This patchset adds a stable-movable-migrate-type for memory-management, It is used for anti-fragmentation(hugepage, big-order allocation...), hot-removal-of-memory(virtualization, power-conserve, move memory between systems to make better utilities of memories). it likes ZONE_MOVABLE, but it is more flexible. o The 1st patch fixes the allocation of CMA and do prepares for movable-like types. o The 2nd patch add a new migrate type which stands for the movable types which pages will not be changed to the other type. I chose the name MIGRATE_HOTREMOVE from MIGRATE_HOTREMOVE and MIGRATE_MOVABLE_STABLE, it just because the first usecase of this new type is for hotremove. o The 3th path introduces online_movable. When a memoryblock is onlined by "online_movable", the kernel will not have directly reference to the page of the memoryblock, thus we can remove that memory any time when needed. Different from ZONE_MOVABLE: it can be used for any given memroyblock. it can be set after boot(ZONE_MOVABLE zones are configured when booting) Lai Jiangshan (3): use __rmqueue_smallest when borrow memory from MIGRATE_CMA add MIGRATE_HOTREMOVE type add online_movable arch/tile/mm/init.c | 2 +- drivers/acpi/acpi_memhotplug.c | 3 +- drivers/base/memory.c | 24 +++++++---- include/linux/memory.h | 1 + include/linux/memory_hotplug.h | 4 +- include/linux/mmzone.h | 37 +++++++++++++++++ include/linux/page-isolation.h | 2 +- mm/compaction.c | 6 +- mm/memory-failure.c | 8 +++- mm/memory_hotplug.c | 36 +++++++++++++--- mm/page_alloc.c | 86 ++++++++++++++++----------------------- mm/vmstat.c | 3 + 12 files changed, 136 insertions(+), 76 deletions(-) -- 1.7.4.4 -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html