]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
sched, sched_ext: Replace scx_next_task_picked() with sched_class->switch_class()
authorTejun Heo <tj@kernel.org>
Thu, 20 Jun 2024 22:15:02 +0000 (12:15 -1000)
committerTejun Heo <tj@kernel.org>
Fri, 21 Jun 2024 19:49:28 +0000 (09:49 -1000)
commitb999e365c2982dbd50f01fec520215d3c61ea2aa
tree7f7001db61c757b0c8e4613e82af80ac7d0aa2ed
parenta5db7817af780db6a7f290c79677eff4fd13c5fa
sched, sched_ext: Replace scx_next_task_picked() with sched_class->switch_class()

scx_next_task_picked() is used by sched_ext to notify the BPF scheduler when
a CPU is taken away by a task dispatched from a higher priority sched_class
so that the BPF scheduler can, e.g., punt the task[s] which was running or
were waiting for the CPU to other CPUs.

Replace the sched_ext specific hook scx_next_task_picked() with a new
sched_class operation switch_class().

The changes are straightforward and the code looks better afterwards.
However, when !CONFIG_SCHED_CLASS_EXT, this ends up adding an unused hook
which is unlikely to be useful to other sched_classes. For further
discussion on this subject, please refer to the following:

  http://lkml.kernel.org/r/CAHk-=wjFPLqo7AXu8maAGEGnOy6reUg-F4zzFhVB0Kyu22h7pw@mail.gmail.com

Signed-off-by: Tejun Heo <tj@kernel.org>
Suggested-by: Linus Torvalds <torvalds@linux-foundation.org>
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.c
kernel/sched/ext.h
kernel/sched/sched.h