Platforms that support a mix of mirrored and regular memory are coming. We'd like to use the mirrored memory for kernel code, data and dynamically allocated data because our machine check recovery code cannot fix problems there. This series modifies the memblock allocator to comprehend mirrored memory and use it for all boot time allocations. Later I'll dig into page_alloc.c to put the leftover mirrored memory into a zone to be used for kernel allocation by slab/slob/slub and others.
You'll see why this is just RFC when you get to part 3. Tony Luck (3): mm/memblock: Add extra "flag" to memblock to allow selection of memory based on attribute mm/memblock: Allocate boot time data structures from mirrored memory x86, mirror: x86 enabling - find mirrored memory ranges and tell memblock arch/s390/kernel/crash_dump.c | 4 +- arch/sparc/mm/init_64.c | 4 +- arch/x86/kernel/check.c | 2 +- arch/x86/kernel/e820.c | 2 +- arch/x86/mm/init_32.c | 2 +- arch/x86/mm/memtest.c | 2 +- include/linux/memblock.h | 43 ++++++++++------ mm/cma.c | 4 +- mm/memblock.c | 113 ++++++++++++++++++++++++++++++++---------- mm/nobootmem.c | 12 ++++- 10 files changed, 135 insertions(+), 53 deletions(-) -- 2.1.0 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/