Re: [RFC PATCH] sched/topology: Introduce NUMA identity node sched domain

From: Suravee Suthikulpanit
Date: Fri Aug 11 2017 - 01:58:40 EST




On 8/11/17 11:57, Suravee Suthikulpanit wrote:

[...]
@@ -1445,9 +1448,24 @@ void sched_init_numa(void)
tl[i] = sched_domain_topology[i];

/*
+ * Ignore the NUMA identity level if it has the same cpumask
+ * as previous level. This is the case for:
+ * - System with last-level-cache (MC) sched domain span a NUMA node.
+ * - System with DIE sched domain span a NUMA node.
+ *
+ * Assume all NUMA nodes are identical, so only check node 0.
+ */
+ if (!cpumask_equal(sched_domains_numa_masks[0][0], tl[i-1].mask(0)))
+ tl[i++] = (struct sched_domain_topology_level){
+ .mask = sd_numa_mask,
+ .numa_level = 0,
+ SD_INIT_NAME(NODE)
+ };

So what you've forgotten to mention is that for those systems where the
LLC == NODE this now superfluous level gets removed by the degenerate
code. Have you verified that does the right thing?

Let me check with that one and get back.

Actually, it is not removed by the degenerate code. That is what this logic is for. It checks for LCC == NODE or DIE == NODE before setting up the NODE sched level. I can update the comment. This has also been tested on system w/ LLC == NODE.

Thanks,
Suravee