Messages in this thread | | | Date | Fri, 09 May 2014 11:14:21 -0400 | From | Rik van Riel <> | Subject | Re: [PATCH 2/4] sched,numa: weigh nearby nodes for task placement on complex NUMA topologies |
| |
On 05/09/2014 05:53 AM, Peter Zijlstra wrote: > On Thu, May 08, 2014 at 01:23:29PM -0400, riel@redhat.com 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...
| |