mm: ZONE_DEVICE depends on SPARSEMEM_VMEMMAP
authorDan Williams <dan.j.williams@intel.com>
Thu, 17 Mar 2016 21:19:58 +0000 (14:19 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 17 Mar 2016 22:09:34 +0000 (15:09 -0700)
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.

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Reported-by: Vlastimil Babka <vbabka@suse.cz>
Acked-by: Vlastimil Babka <vbabka@suse.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
mm/Kconfig

index 520dae6e6ed0560cbeb2450674c279e77b17ec18..05efa6a5199efafbac1ebe08ab0f92f57d572455 100644 (file)
@@ -653,6 +653,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