Re: [PATCH] sched/topology: Use Identity node only if required

From: Peter Zijlstra
Date: Wed Aug 08 2018 - 03:59:07 EST


On Wed, Aug 08, 2018 at 12:39:31PM +0530, Srikar Dronamraju wrote:
> With Commit 051f3ca02e46 ("sched/topology: Introduce NUMA identity node
> sched domain") scheduler introduces an extra numa level. However that
> leads to
>
> - numa topology on 2 node systems no more marked as NUMA_DIRECT. After
> this commit, it gets reported as NUMA_BACKPLANE. This is because
> sched_domains_numa_level now equals 2 on 2 node systems.
>
> - Extra numa sched domain that gets added and degenerated on most
> machines. The Identity node is only needed on very few systems.
> Also all non-numa systems will end up populating
> sched_domains_numa_distance and sched_domains_numa_masks tables.
>
> - On shared lpars like powerpc, this extra sched domain creation can
> lead to repeated rcu stalls, sometimes even causing unresponsive
> systems on boot. On such stalls, it was noticed that
> init_sched_groups_capacity() (sg != sd->groups is always true).

The idea was that if the topology level is redundant (as it often is);
then the degenerate code would take it out.

Why is that not working (right) and can we fix that instead?