]> www.infradead.org Git - users/jedix/linux-maple.git/commit
sched, sched_ext: Open code for_balance_class_range()
authorTejun Heo <tj@kernel.org>
Mon, 8 Jul 2024 19:39:48 +0000 (09:39 -1000)
committerTejun Heo <tj@kernel.org>
Mon, 8 Jul 2024 19:39:48 +0000 (09:39 -1000)
commit744d83601ffa11ebbca52c0ec0b039e269d05054
treef6b9e7d05e7842b2d8ada3b5fb51393e2cc7f64d
parent6ab228ecc3fd9e0e3cdda32e56e39faac0dc500f
sched, sched_ext: Open code for_balance_class_range()

For flexibility, sched_ext allows the BPF scheduler to select the CPU to
execute a task on at dispatch time so that e.g. a queue can be shared across
multiple CPUs. To enable this, the dispatch path is executed from balance()
so that a dispatched task can be hot-migrated to its target CPU. This means
that sched_ext needs its balance() method invoked before every
pick_next_task() even when the CPU is waking up from SCHED_IDLE.

for_balance_class_range() defined in kernel/sched/ext.h implements this
selective iteration promotion. However, the indirection obfuscates more than
helps. Open code the iteration promotion in put_prev_task_balance() and
remove for_balance_class_range().

No functional changes intended.

Signed-off-by: Tejun Heo <tj@kernel.org>
Suggested-by: Linus Torvalds <torvalds@linux-foundation.org>
Acked-by: David Vernet <void@manifault.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
kernel/sched/core.c
kernel/sched/ext.h