On 05/09/2014 05:53 AM, Peter Zijlstra wrote:
On Thu, May 08, 2014 at 01:23:29PM -0400, [email protected] 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 [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to