From ae998ece624bdeaf581f8fc5ac979fb553d8f240 Mon Sep 17 00:00:00 2001 From: Sudarshan Rajagopalan Date: Tue, 15 May 2018 19:52:51 -0700 Subject: [PATCH] mm/memory_hotplug: Add hot-added memory blocks to ZONE_MOVABLE type When onlining memory blocks, this option helps to add the target memory block to ZONE_MOVABLE zone type. For successful offlining, these memory blocks should belong to 'ZONE_MOVABLE' since it carries only movable pages. When this option is not set, the default zone policy is to add the blocks to 'ZONE_NORMAL' which may pin pages. Change-Id: I7f38a07d3c6817141ec8cce3a910fa7d7d91712d Signed-off-by: Sudarshan Rajagopalan [isaacm@codeaurora.org: Use IS_ENABLED() for checking configs] Signed-off-by: Isaac J. Manjarres --- mm/Kconfig | 19 +++++++++++++++++++ mm/memory_hotplug.c | 2 +- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/mm/Kconfig b/mm/Kconfig index 63be730cea7b..880a5221a5ea 100644 --- a/mm/Kconfig +++ b/mm/Kconfig @@ -175,6 +175,25 @@ config MEMORY_HOTPLUG_DEFAULT_ONLINE Say N here if you want the default policy to keep all hot-plugged memory blocks in 'offline' state. +config MEMORY_HOTPLUG_MOVABLE_NODE + bool "Add hot-added memory blocks to ZONE_MOVABLE type" + default n + depends on MEMORY_HOTPLUG + depends on QCOM_MEM_OFFLINE + help + When onlining memory blocks, this option helps to add the target + memory block to ZONE_MOVABLE zone type. For successful offlining, + these memory blocks should belong to 'ZONE_MOVABLE' since it carries + only movable pages. When this option is not set, the default zone + policy is to add the blocks to 'ZONE_NORMAL' which may pin pages. + + See Documentation/memory-hotplug.txt for more information. + + Say Y here if you want all hot-added memory blocks to be added to + 'ZONE_MOVABLE' type.state by default. + Say N here if you want the default policy to add all hot-added + memory blocks in 'ZONE_NORMAL' type. + config MEMORY_HOTREMOVE bool "Allow for memory hot remove" select MEMORY_ISOLATION diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c index f307bd82d750..3b287f3ba11c 100644 --- a/mm/memory_hotplug.c +++ b/mm/memory_hotplug.c @@ -66,7 +66,7 @@ void put_online_mems(void) percpu_up_read(&mem_hotplug_lock); } -bool movable_node_enabled = false; +bool movable_node_enabled = IS_ENABLED(CONFIG_MEMORY_HOTPLUG_MOVABLE_NODE); #ifndef CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE bool memhp_auto_online;