Messages in this thread |  | | Date | Mon, 13 Oct 2014 03:17:00 -0400 | From | Rik van Riel <> | Subject | Re: [PATCH RFC 5/5] sched,numa: find the preferred nid with complex NUMA topology |
| |
On 10/12/2014 10:56 AM, Peter Zijlstra wrote: > On Wed, Oct 08, 2014 at 03:37:30PM -0400, riel@redhat.com wrote: >> +static int preferred_group_nid(struct task_struct *p, int nid) >> +{ >> + nodemask_t nodes; >> + int hops; >> + >> + /* Direct connections between all NUMA nodes. */ >> + if (sched_numa_topology_type == NUMA_DIRECT) >> + return nid; >> + >> + /* >> + * On a system with glueless mesh NUMA topology, group_weight >> + * scores nodes according to the number of NUMA hinting faults on >> + * both the node itself, and on nearby nodes. >> + */ >> + if (sched_numa_topology_type == NUMA_GLUELESS_MESH) { >> + unsigned long score, max_score = 0; >> + int node, max_node = nid; >> + >> + hops = sched_domains_numa_levels; >> + >> + for_each_online_node(node) { >> + score = group_weight(p, node, hops); >> + if (score > max_score) { >> + max_score = score; >> + max_node = node; >> + } >> + } >> + return max_node; >> + } > > This too is O(nr_nodes^2), right? > It is, but I suspect the glueless mesh topologies are never larger than on the order of a dozen nodes or so.
Would you prefer me to make the optimization I proposed in the other email, or should I just add in a comment stating that that optimization could be made if it turns out to be necessary?
|  |