• Toshi Kani's avatar
    acpi: Add acpi_map_pxm_to_online_node() · 99759869
    Toshi Kani authored
    The kernel initializes CPU & memory's NUMA topology from ACPI
    SRAT table.  Some other ACPI tables, such as NFIT and DMAR, also
    contain proximity IDs for their device's NUMA topology.  This
    information can be used to improve performance of these devices.
    
    This patch introduces acpi_map_pxm_to_online_node(), which is
    similar to acpi_map_pxm_to_node(), but always returns an online
    node.  When the mapped node from a given proximity ID is offline,
    it looks up the node distance table and returns the nearest
    online node.
    
    ACPI device drivers, which are called after the NUMA initialization
    has completed in the kernel, can call this interface to obtain their
    device NUMA topology from ACPI tables.  Such drivers do not have to
    deal with offline nodes.  A node may be offline when a device
    proximity ID is unique, SRAT memory entry does not exist, or NUMA is
    disabled, ex. "numa=off" on x86.
    
    This patch also moves the pxm range check from acpi_get_node() to
    acpi_map_pxm_to_node().
    Signed-off-by: default avatarToshi Kani <toshi.kani@hp.com>
    Acked-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com&gt;>
    Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
    99759869
numa.c 9.68 KB