]> git.hungrycats.org Git - linux/commitdiff
sched/topology: Simplify build_overlap_sched_groups()
authorPeter Zijlstra <peterz@infradead.org>
Fri, 14 Apr 2017 15:32:07 +0000 (17:32 +0200)
committerBen Hutchings <ben@decadent.org.uk>
Mon, 1 Jan 2018 20:52:07 +0000 (20:52 +0000)
commit 91eaed0d61319f58a9f8e43d41a8cbb069b4f73d upstream.

Now that the first group will always be the previous domain of this
@cpu this can be simplified.

In fact, writing the code now removed should've been a big clue I was
doing it wrong :/

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>
[bwh: Backported to 3.16: adjust filename, context]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
kernel/sched/core.c

index 0692ee2dd889d5fc7de09838ba68b23879a0d45c..68bc1bf9f5abe3fa3bb0b7022f46a1520c0a0e4a 100644 (file)
@@ -5869,7 +5869,7 @@ static void init_overlap_sched_group(struct sched_domain *sd,
 static int
 build_overlap_sched_groups(struct sched_domain *sd, int cpu)
 {
-       struct sched_group *first = NULL, *last = NULL, *groups = NULL, *sg;
+       struct sched_group *first = NULL, *last = NULL, *sg;
        const struct cpumask *span = sched_domain_span(sd);
        struct cpumask *covered = sched_domains_tmpmask;
        struct sd_data *sdd = sd->private;
@@ -5899,15 +5899,6 @@ build_overlap_sched_groups(struct sched_domain *sd, int cpu)
 
                init_overlap_sched_group(sd, sg);
 
-               /*
-                * Make sure the first group of this domain contains the
-                * canonical balance cpu. Otherwise the sched_domain iteration
-                * breaks. See update_sg_lb_stats().
-                */
-               if ((!groups && cpumask_test_cpu(cpu, sg_span)) ||
-                   group_balance_cpu(sg) == cpu)
-                       groups = sg;
-
                if (!first)
                        first = sg;
                if (last)
@@ -5915,7 +5906,7 @@ build_overlap_sched_groups(struct sched_domain *sd, int cpu)
                last = sg;
                last->next = first;
        }
-       sd->groups = groups;
+       sd->groups = first;
 
        return 0;