[PATCH] mm: ZONE_DEVICE depends on SPARSEMEM_VMEMMAP

From: Dan Williams
Date: Fri Mar 04 2016 - 19:42:49 EST


The primary use case for devm_memremap_pages() is to allocate an
memmap array from persistent memory. That capabilty requires
vmem_altmap which requires SPARSEMEM_VMEMMAP.

Also, without SPARSEMEM_VMEMMAP the addition of ZONE_DEVICE expands
ZONES_WIDTH and triggers the:

"Unfortunate NUMA and NUMA Balancing config, growing page-frame for
last_cpupid."

...warning in mm/memory.c. SPARSEMEM_VMEMMAP=n && ZONE_DEVICE=y is not
a configuration we should worry about supporting.

Reported-by: Vlastimil Babka <vbabka@xxxxxxx>
Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>
---
mm/Kconfig | 1 +
1 file changed, 1 insertion(+)

diff --git a/mm/Kconfig b/mm/Kconfig
index 664fa2416909..b95322ba542b 100644
--- a/mm/Kconfig
+++ b/mm/Kconfig
@@ -654,6 +654,7 @@ config ZONE_DEVICE
bool "Device memory (pmem, etc...) hotplug support" if EXPERT
depends on MEMORY_HOTPLUG
depends on MEMORY_HOTREMOVE
+ depends on SPARSEMEM_VMEMMAP
depends on X86_64 #arch_add_memory() comprehends device memory

help