Re: [PATCH RFC 2/5] sched,numa: classify the NUMA topology of a system

From: Peter Zijlstra
Date: Sun Oct 12 2014 - 10:31:08 EST


On Wed, Oct 08, 2014 at 03:37:27PM -0400, riel@xxxxxxxxxx wrote:
> +static void init_numa_topology_type(void)
> +{
> + int a, b, c, n;
> +
> + n = sched_domains_numa_levels;
> +
> + if (n <= 1)
> + sched_numa_topology_type = NUMA_DIRECT;
> +
> + for_each_online_node(a) {
> + for_each_online_node(b) {
> + /* Find two nodes furthest removed from each other. */
> + if (node_hops(a, b) < n)
> + continue;
> +
> + /* Is there an intermediary node between a and b? */
> + for_each_online_node(c) {
> + if (node_hops(a, c) < n &&
> + node_hops(b, c) < n) {
> + sched_numa_topology_type =
> + NUMA_GLUELESS_MESH;
> + return;
> + }
> + }
> +
> + sched_numa_topology_type = NUMA_BACKPLANE;
> + return;
> + }
> + }
> +}

We can find max_distance nodes in sched_init_numa(), right? Could we not
avoid this second iteration?
--
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/