Re: [RFC][PATCH 4/6] sched: eliminate "DIE" domain level when NUMA present

From: Peter Zijlstra
Date: Fri Sep 19 2014 - 11:13:10 EST


On Wed, Sep 17, 2014 at 03:33:16PM -0700, Dave Hansen wrote:
>
> From: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>
>
> The "DIE" topology level is currently defined like this:
>
> static inline const struct cpumask *cpu_cpu_mask(int cpu)
> {
> return cpumask_of_node(cpu_to_node(cpu));
> }
>
> But that makes very little sense on a NUMA system since
> the lowest-domain NUMA node is guaranteed to be essentially
> the same as this level.
>
> We leave this for systems that are !CONFIG_NUMA and that
> might need a top-level domain.
>
> This also keeps us from having screwy topologies when the
> smallest NUMA node is only _part_ of the die.
>
> Signed-off-by: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>
> ---
>
> b/kernel/sched/core.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff -puN kernel/sched/core.c~die-is-NUMA-based-and-screwed-up kernel/sched/core.c
> --- a/kernel/sched/core.c~die-is-NUMA-based-and-screwed-up 2014-09-17 15:28:57.867588315 -0700
> +++ b/kernel/sched/core.c 2014-09-17 15:28:57.873588591 -0700
> @@ -6141,7 +6141,9 @@ static struct sched_domain_topology_leve
> #ifdef CONFIG_SCHED_MC
> { cpu_coregroup_mask, cpu_core_flags, SD_INIT_NAME(MC) },
> #endif
> +#ifndef CONFIG_NUMA
> { cpu_cpu_mask, SD_INIT_NAME(DIE) },
> +#endif
> { NULL, },
> };

Yeah, no. Also, looking at it now, I see why it worked and how its been
wrong :-) As you say it returns the node mask, not the PKG mask as it
should have been doing.

So don't change the default topology, in general I'd say its still true
that you get one or more packages inside a node. Change override the
default topology in arch code.



--
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/