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>
Showing
- arch/x86/mm/init_64.c 26 additions, 7 deletionsarch/x86/mm/init_64.c
- drivers/nvdimm/pmem.c 4 additions, 2 deletionsdrivers/nvdimm/pmem.c
- include/linux/memory_hotplug.h 2 additions, 1 deletioninclude/linux/memory_hotplug.h
- include/linux/memremap.h 35 additions, 4 deletionsinclude/linux/memremap.h
- include/linux/mm.h 8 additions, 1 deletioninclude/linux/mm.h
- kernel/memremap.c 70 additions, 2 deletionskernel/memremap.c
- mm/memory_hotplug.c 48 additions, 19 deletionsmm/memory_hotplug.c
- mm/page_alloc.c 10 additions, 1 deletionmm/page_alloc.c
- mm/sparse-vmemmap.c 74 additions, 2 deletionsmm/sparse-vmemmap.c
- mm/sparse.c 5 additions, 3 deletionsmm/sparse.c
Please register or sign in to comment