• Zoltan Menyhart's avatar
    [IA64] Fix NUMA configuration issue · 98075d24
    Zoltan Menyhart authored
    There is a NUMA memory configuration issue in 2.6.24:
    
    A 2-node machine of ours has got the following memory layout:
    
    Node 0:	0 - 2 Gbytes
    Node 0:	4 - 8 Gbytes
    Node 1:	8 - 16 Gbytes
    Node 0:	16 - 18 Gbytes
    
    "efi_memmap_init()" merges the three last ranges into one.
    
    "register_active_ranges()" is called as follows:
    
    efi_memmap_walk(register_active_ranges, NULL);
    
    i.e. once for the 4 - 18 Gbytes range. It picks up the node
    number from the start address, and registers all the memory for
    the node #0.
    
    "register_active_ranges()" should be called as follows to
    make sure there is no merged address range at its entry:
    
    efi_memmap_walk(filter_memory, register_active_ranges);
    
    "filter_memory()" is similar to "filter_rsvd_memory()",
    but the reserved memory ranges are not filtered out.
    Signed-off-by: default avatarZoltan Menyhart <Zoltan.Menyhart@bull.net>
    Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
    98075d24
init.c 19.4 KB