]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
sched/fair: Remove unnecessary goto in update_sd_lb_stats()
authorDavid Vernet <void@manifault.com>
Tue, 6 Feb 2024 04:39:19 +0000 (22:39 -0600)
committerIngo Molnar <mingo@kernel.org>
Wed, 28 Feb 2024 14:19:23 +0000 (15:19 +0100)
In update_sd_lb_stats(), when we're iterating over the sched groups that
comprise a sched domain, we're skipping the call to
update_sd_pick_busiest() for the sched group that contains the local /
destination CPU. We use a goto to skip the call, but we could just as
easily check !local_group, as there's no other logic that we need to
skip with the goto. Let's remove the goto, and check for !local_group in
the if statement instead.

Signed-off-by: David Vernet <void@manifault.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Reviewed-by: Vincent Guittot <vincent.guittot@linaro.org>
Reviewed-by: Valentin Schneider <vschneid@redhat.com>
Link: https://lore.kernel.org/r/20240206043921.850302-2-void@manifault.com
kernel/sched/fair.c

index 352222d09c90941f1ea610154ed19648db83cb6f..41dda5311770dff5315f2c0cc755ab36acc71af8 100644 (file)
@@ -10580,16 +10580,11 @@ static inline void update_sd_lb_stats(struct lb_env *env, struct sd_lb_stats *sd
 
                update_sg_lb_stats(env, sds, sg, sgs, &sg_status);
 
-               if (local_group)
-                       goto next_group;
-
-
-               if (update_sd_pick_busiest(env, sds, sg, sgs)) {
+               if (!local_group && update_sd_pick_busiest(env, sds, sg, sgs)) {
                        sds->busiest = sg;
                        sds->busiest_stat = *sgs;
                }
 
-next_group:
                /* Now, start updating sd_lb_stats */
                sds->total_load += sgs->group_load;
                sds->total_capacity += sgs->group_capacity;