[RFC PATCH 0/3 V1 resend] mm: add new migrate type and online_movable for hotplug

From: Lai Jiangshan
Date: Wed Jul 04 2012 - 04:39:47 EST


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-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/