sched/topology: Verify the first group matches the child domain
authorPeter Zijlstra <peterz@infradead.org>
Fri, 14 Apr 2017 16:20:48 +0000 (18:20 +0200)
committerIngo Molnar <mingo@kernel.org>
Mon, 15 May 2017 08:15:26 +0000 (10:15 +0200)
We want sched_groups to be sibling child domains (or individual CPUs
when there are no child domains). Furthermore, since the first group
of a domain should include the CPU of that domain, the first group of
each domain should match the child domain.

Verify this is indeed so.

Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
kernel/sched/topology.c

index 3d50ee3..81c8203 100644 (file)
@@ -93,6 +93,12 @@ static int sched_domain_debug_one(struct sched_domain *sd, int cpu, int level,
                                group->sgc->capacity);
                }
 
+               if (group == sd->groups && sd->child &&
+                   !cpumask_equal(sched_domain_span(sd->child),
+                                  sched_group_cpus(group))) {
+                       printk(KERN_ERR "ERROR: domain->groups does not match domain->child\n");
+               }
+
                group = group->next;
 
                if (group != sd->groups)