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 <[email protected]>
Signed-off-by: Dan Williams <[email protected]>
---
 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

Reply via email to