sched/fair: Simplify the update_sd_pick_busiest() logic
authorDavid Vernet <void@manifault.com>
Tue, 6 Feb 2024 04:39:21 +0000 (22:39 -0600)
committerIngo Molnar <mingo@kernel.org>
Wed, 28 Feb 2024 14:19:26 +0000 (15:19 +0100)
commit7e9f7d17fe6c23432fda9a3648a858b7589cb4aa
tree824672e91e9fe5fe69b40958cad1f0c2d63cb3dc
parent7f1a7229718d788f26a711374da83adc2689837f
sched/fair: Simplify the update_sd_pick_busiest() logic

When comparing the current struct sched_group with the yet-busiest
domain in update_sd_pick_busiest(), if the two groups have the same
group type, we're currently doing a bit of unnecessary work for any
group >= group_misfit_task. We're comparing the two groups, and then
returning only if false (the group in question is not the busiest).

Otherwise, we break out, do an extra unnecessary conditional check that's
vacuously false for any group type > group_fully_busy, and then always
return true.

Let's just return directly in the switch statement instead. This doesn't
change the size of vmlinux with llvm 17 (not surprising given that all
of this is inlined in load_balance()), but it does shrink load_balance()
by 88 bytes on x86. Given that it also improves readability, this seems
worth doing.

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-4-void@manifault.com
kernel/sched/fair.c