• Tejun Heo's avatar
    x86-64, NUMA: Simplify hotadd memory handling · 9688678a
    Tejun Heo authored
    The only special handling NUMA needs to do for hotadd memory is
    determining the node for the hotadd memory given the address of it and
    there's nothing specific to specific config method used.
    
    srat_64.c does somewhat elaborate error checking on
    ACPI_SRAT_MEM_HOT_PLUGGABLE regions, remembers them and implements
    memory_add_physaddr_to_nid() which determines the node for given
    hotadd address.
    
    This is almost completely redundant.  All the information is already
    available to the generic NUMA code which already performs all the
    sanity checking and merging.  All that's necessary is not using
    __initdata from numa_meminfo and providing a function which uses it to
    map address to node.
    
    Drop the specific implementation from srat_64.c and add generic
    memory_add_physaddr_to_nid() in numa_64.c, which is enabled if
    CONFIG_MEMORY_HOTPLUG is set.  Other than dropping the code, srat_64.c
    doesn't need any change as it already calls numa_add_memblk() for hot
    pluggable regions which is enough.
    
    While at it, change CONFIG_MEMORY_HOTPLUG_SPARSE in srat_64.c to
    CONFIG_MEMORY_HOTPLUG, for NUMA on x86-64, the two are always the
    same.
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Yinghai Lu <yinghai@kernel.org>
    Cc: David Rientjes <rientjes@google.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    9688678a
numa_64.c 14.2 KB