Re: [PATCH] mm: ZONE_DEVICE depends on SPARSEMEM_VMEMMAP

From: Vlastimil Babka
Date: Mon Mar 07 2016 - 04:53:47 EST


On 03/05/2016 01:42 AM, Dan Williams wrote:
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.

Some if the ifdefs around to_vmem_altmap() could now be simplified, but that can also be done later...

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>

Acked-by: Vlastimil Babka <vbabka@xxxxxxx>

---
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