]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
sched/core: Rework sched_class::wakeup_preempt() and rq_modified_*()
authorPeter Zijlstra <peterz@infradead.org>
Wed, 10 Dec 2025 08:06:50 +0000 (09:06 +0100)
committerPeter Zijlstra <peterz@infradead.org>
Wed, 17 Dec 2025 09:53:25 +0000 (10:53 +0100)
commit704069649b5bfb7bf1fe32c0281fe9036806a59a
tree19f57962e5dc941e013503d28724f9d1bc8bf0ab
parent527a521029c3edd38fb9fc96cd58e3fd7393d28e
sched/core: Rework sched_class::wakeup_preempt() and rq_modified_*()

Change sched_class::wakeup_preempt() to also get called for
cross-class wakeups, specifically those where the woken task
is of a higher class than the previous highest class.

In order to do this, track the current highest class of the runqueue
in rq::next_class and have wakeup_preempt() track this upwards for
each new wakeup. Additionally have schedule() re-set the value on
pick.

Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Link: https://patch.msgid.link/20251127154725.901391274@infradead.org
kernel/sched/core.c
kernel/sched/deadline.c
kernel/sched/ext.c
kernel/sched/fair.c
kernel/sched/idle.c
kernel/sched/rt.c
kernel/sched/sched.h
kernel/sched/stop_task.c