On Thu, 2010-03-04 at 12:52 -0600, Christoph Lameter wrote: > On Thu, 4 Mar 2010, Lee Schermerhorn wrote: > > > numa_mem_id() - returns node number of "local memory" node > > Can we call that numa_nearest_node or so? Or "numa_local_memory_node"? We think/hope it's the nearest one... We'll choose something for the next respin. > What happens if multiple nodes > are at the same distance? This is handled by build_all_zonelists(). It attempts to distribute the various nodes' zonelists to avoid multiple nodes falling back to the same node when distances are equal--e.g., with a default SLIT. However, if the SLIT distances indicate that a node [A] is closer to 2 or more other nodes [B...] than any other node, all of nodes B... will fallback to node A. > Still feel unsecure about what happens if there > are N closest nodes to M cpuless cpus. Will each of the M cpus use the > first of the N closest nodes for allocation? Each of the M cpus [memless, right?] will use the first node in their respective node's zonelist. If the cpu's node has local memory, the cpu will allocate from there. If the cpu's node is memoryless, the cpu will allocate from the node that build_all_zonelists/find_next_best_node assigned as the first node-with-memory in the cpu's node's zonelist. I.e., the same logic all "local" mempolicy based allocations will use. Lee > -- To unsubscribe from this list: send the line "unsubscribe linux-numa" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html