]> www.infradead.org Git - users/jedix/linux-maple.git/commit
sched: Rework pick_next_task()
authorPeter Zijlstra <peterz@infradead.org>
Tue, 13 Aug 2024 22:25:53 +0000 (00:25 +0200)
committerPeter Zijlstra <peterz@infradead.org>
Tue, 3 Sep 2024 13:26:31 +0000 (15:26 +0200)
commitfd03c5b8585562d60f8b597b4332d28f48abfe7d
tree11b3007a752affe6beaca37c057ca9a5c0983048
parent260598f142c34811d226fdde5ab0346b48181439
sched: Rework pick_next_task()

The current rule is that:

  pick_next_task() := pick_task() + set_next_task(.first = true)

And many classes implement it directly as such. Change things around
to make pick_next_task() optional while also changing the definition to:

  pick_next_task(prev) := pick_task() + put_prev_task() + set_next_task(.first = true)

The reason is that sched_ext would like to have a 'final' call that
knows the next task. By placing put_prev_task() right next to
set_next_task() (as it already is for sched_core) this becomes
trivial.

As a bonus, this is a nice cleanup on its own.

Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://lore.kernel.org/r/20240813224016.051225657@infradead.org
kernel/sched/core.c
kernel/sched/deadline.c
kernel/sched/fair.c
kernel/sched/idle.c
kernel/sched/rt.c
kernel/sched/sched.h
kernel/sched/stop_task.c