• keith mannthey's avatar
    [PATCH] convert i386 NUMA KVA space to bootmem · 91023300
    keith mannthey authored
    Address a long standing issue of booting with an initrd on an i386 numa
    system.  Currently (and always) the numa kva area is mapped into low memory
    by finding the end of low memory and moving that mark down (thus creating
    space for the kva).  The issue with this is that Grub loads initrds into
    this similar space so when the kernel check the initrd it finds it outside
    max_low_pfn and disables it (it thinks the initrd is not mapped into usable
    memory) thus initrd enabled kernels can't boot i386 numa :(
    
    My solution to the problem just converts the numa kva area to use the
    bootmem allocator to save it's area (instead of moving the end of low
    memory).  Using bootmem allows the kva area to be mapped into more diverse
    addresses (not just the end of low memory) and enables the kva area to be
    mapped below the initrd if present.
    
    I have tested this patch on numaq(no initrd) and summit(initrd) i386 numa
    based systems.
    
    [akpm@osdl.org: cleanups]
    Signed-off-by: default avatarKeith Mannthey <kmannth@us.ibm.com>
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    91023300
setup.c 41.1 KB