x86, mm: introduce vmem_altmap to augment vmemmap_populate()
authorDan Williams <dan.j.williams@intel.com>
Sat, 16 Jan 2016 00:56:22 +0000 (16:56 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sat, 16 Jan 2016 01:56:32 +0000 (17:56 -0800)
commit4b94ffdc4163bae1ec73b6e977ffb7a7da3d06d3
treef653da252999e8c1f45a2c7ae18fb1c241b4a300
parent9476df7d80dfc425b37bfecf1d89edf8ec81fcb6
x86, mm: introduce vmem_altmap to augment vmemmap_populate()

In support of providing struct page for large persistent memory
capacities, use struct vmem_altmap to change the default policy for
allocating memory for the memmap array.  The default vmemmap_populate()
allocates page table storage area from the page allocator.  Given
persistent memory capacities relative to DRAM it may not be feasible to
store the memmap in 'System Memory'.  Instead vmem_altmap represents
pre-allocated "device pages" to satisfy vmemmap_alloc_block_buf()
requests.

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Reported-by: kbuild test robot <lkp@intel.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
arch/x86/mm/init_64.c
drivers/nvdimm/pmem.c
include/linux/memory_hotplug.h
include/linux/memremap.h
include/linux/mm.h
kernel/memremap.c
mm/memory_hotplug.c
mm/page_alloc.c
mm/sparse-vmemmap.c
mm/sparse.c