• Andrew Morton's avatar
    [PATCH] fix discontig with 0-sized nodes · 9d7a7faf
    Andrew Morton authored
    From: Dave Hansen <haveblue@us.ibm.com>
    
    In order to turn an 8-way x440 into a 4-way for testing, we often use
    mem=(1/2 of total) and maxcpus=4.  maxcpus has always worked, but mem=
    hasn't.  The mem= parameter actually changes the kernel's e820 structure,
    which manifests itself as max_pfn.  node_end_pfn[] obeys this because of
    find_max_pfn_node(), but node_start_pfn[] wasn't modified.
    
    If you have a mem= line that causes memory to stop before the beginning of
    a node, you get a condition where start > end (because start was never
    modified).  There is a bug check for this, but it was placed just _before_
    the error was made :)
    
    Also, the bootmem alloc functions die if you request something of zero size
    from them.  This patch avoids that too.  This shouldn't have much of an
    effect on non-NUMA systems.
    9d7a7faf
page_alloc.c 39 KB