• Mel Gorman's avatar
    Allow nodes to exist that only contain ZONE_MOVABLE · b5445f95
    Mel Gorman authored
    With the introduction of kernelcore=, a configurable zone is created on
    request.  In some cases, this value will be small enough that some nodes
    contain only ZONE_MOVABLE.  On some NUMA configurations when this occurs,
    arch-independent zone-sizing will get the size of the memory holes within
    the node incorrect.  The value of present_pages goes negative and the boot
    fails.
    
    This patch fixes the bug in the calculation of the size of the hole.  The
    test case is to boot test a NUMA machine with a low value of kernelcore=
    before and after the patch is applied.  While this bug exists in early
    kernel it cannot be triggered in practice.
    
    This patch has been boot-tested on a variety machines with and without
    kernelcore= set.
    Signed-off-by: default avatarMel Gorman <mel@csn.ul.ie>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    b5445f95
page_alloc.c 106 KB