• Bo Liu's avatar
    mm: build_zonelists(): move clear node_load[] to __build_all_zonelists() · 7f9cfb31
    Bo Liu authored
    If node_load[] is cleared everytime build_zonelists() is
    called,node_load[] will have no help to find the next node that should
    appear in the given node's fallback list.
    
    Because of the bug, zonelist's node_order is not calculated as expected.
    This bug affects on big machine, which has asynmetric node distance.
    
    [synmetric NUMA's node distance]
         0    1    2
    0   10   12   12
    1   12   10   12
    2   12   12   10
    
    [asynmetric NUMA's node distance]
         0    1    2
    0   10   12   20
    1   12   10   14
    2   20   14   10
    
    This (my bug) is very old but no one has reported this for a long time.
    Maybe because the number of asynmetric NUMA is very small and they use
    cpuset for customizing node memory allocation fallback.
    
    [akpm@linux-foundation.org: fix CONFIG_NUMA=n build]
    Signed-off-by: default avatarBo Liu <bo-liu@hotmail.com>
    Reviewed-by: default avatarKAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
    Cc: Mel Gorman <mel@csn.ul.ie>
    Cc: Christoph Lameter <cl@linux-foundation.org>
    Cc: <stable@kernel.org>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    7f9cfb31
page_alloc.c 135 KB