Messages in this thread Patch in this message | | | From | Jesse Barnes <> | Subject | [PATCH] fix find_next_best_node | Date | Thu, 4 Nov 2004 09:55:57 -0800 |
| |
If NUMA is enabled, find_next_best_node is responsible for helping build the zonelist for each pgdat in the system. However, if one sets PENALTY_FOR_NODE_WITH_CPUS to a large value in an attempt to prefer nodes w/o CPUs, the local node is erroneously placed after all nodes w/o CPUs in the pgdat's zonelist. This small patch fixes that by just checking if the local node is part of the zonelist yet, and if not, returns it first.
Signed-off-by: Jesse Barnes <jbarnes@sgi.com>
Thanks, Jesse ===== mm/page_alloc.c 1.239 vs edited ===== --- 1.239/mm/page_alloc.c 2004-10-25 13:06:48 -07:00 +++ edited/mm/page_alloc.c 2004-11-04 09:41:23 -08:00 @@ -1213,6 +1213,12 @@ if (test_bit(n, used_node_mask)) continue; + /* Use the local node if we haven't already */ + if (!test_bit(node, used_node_mask)) { + best_node = node; + break; + } + /* Use the distance array to find the distance */ val = node_distance(node, n); | |