ACPI: NUMA: map pxms to low node ids
authorDavid Rientjes <rientjes@google.com>
Thu, 25 Mar 2010 23:33:04 +0000 (16:33 -0700)
committerLen Brown <len.brown@intel.com>
Sun, 4 Apr 2010 04:50:01 +0000 (00:50 -0400)
pxms are mapped to low node ids to maintain generic kernel use of
functions such as pxm_to_node() that are used to determine device
affinity.  Otherwise, there is no pxm-to-node and node-to-pxm matching
rule for x86_64 users of NUMA emulation where a single pxm may be bound
to multiple NUMA nodes.

Signed-off-by: David Rientjes <rientjes@google.com>
Signed-off-by: Len Brown <len.brown@intel.com>
drivers/acpi/numa.c

index b8725461d8874aec865d8617f1c5c1ef70ae1bae..b0337d3146047d150c8a62eb8e5756282e5ea5f0 100644 (file)
@@ -61,8 +61,10 @@ int node_to_pxm(int node)
 
 void __acpi_map_pxm_to_node(int pxm, int node)
 {
-       pxm_to_node_map[pxm] = node;
-       node_to_pxm_map[node] = pxm;
+       if (pxm_to_node_map[pxm] == NUMA_NO_NODE || node < pxm_to_node_map[pxm])
+               pxm_to_node_map[pxm] = node;
+       if (node_to_pxm_map[node] == PXM_INVAL || pxm < node_to_pxm_map[node])
+               node_to_pxm_map[node] = pxm;
 }
 
 int acpi_map_pxm_to_node(int pxm)