Re: [PATCH 2/4] sched,numa: weigh nearby nodes for task placement on complex NUMA topologies

From: Rik van Riel
Date: Fri May 09 2014 - 11:17:25 EST


On 05/09/2014 05:53 AM, Peter Zijlstra wrote:
On Thu, May 08, 2014 at 01:23:29PM -0400, riel@xxxxxxxxxx wrote:
+ /*
+ * For nodes with distances in-between LOCAL_DISTANCE
+ * and max_distance, we count the faults on those nodes
+ * in proportion to their distance, using this formula:
+ *
+ * max_distance - node_distance
+ * -----------------------------
+ * max_distance - LOCAL_DISTANCE
+ */
+ if (task)
+ faults = task_faults(p, node);
+ else
+ faults = group_faults(p, node);
+
+ score += 1000 * faults *
+ (max_distance - distance) /
+ (max_distance - LOCAL_DISTANCE);

OK that makes sense, except I would suggest you use a power-of-two scale
factor :-)

I guess we could build a NUMA distance table that
counts the number of hops, and use that.

That is likely to result in better/easier values
for grouping than the (somewhat arbitrary) distances
in the SLIT table, anyway...
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/