linux/kernel/sched
Vincent Guittot 15257cc2f9 sched/fair: Revert force wakeup preemption
This agressively bypasses run_to_parity and slice protection with the
assumpiton that this is what waker wants but there is no garantee that
the wakee will be the next to run. It is a better choice to use
yield_to_task or WF_SYNC in such case.

This increases the number of resched and preemption because a task becomes
quickly "ineligible" when it runs; We update the task vruntime periodically
and before the task exhausted its slice or at least quantum.

Example:
2 tasks A and B wake up simultaneously with lag = 0. Both are
eligible. Task A runs 1st and wakes up task C. Scheduler updates task
A's vruntime which becomes greater than average runtime as all others
have a lag == 0 and didn't run yet. Now task A is ineligible because
it received more runtime than the other task but it has not yet
exhausted its slice nor a min quantum. We force preemption, disable
protection but Task B will run 1st not task C.

Sidenote, DELAY_ZERO increases this effect by clearing positive lag at
wake up.

Fixes: e837456fdc ("sched/fair: Reimplement NEXT_BUDDY to align with EEVDF goals")
Signed-off-by: Vincent Guittot <vincent.guittot@linaro.org>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://patch.msgid.link/20260123102858.52428-1-vincent.guittot@linaro.org
2026-01-23 11:53:20 +01:00
..
Makefile
autogroup.c
autogroup.h
build_policy.c
build_utility.c
clock.c
completion.c
core.c sched: Deadline has dynamic priority 2026-01-15 21:57:53 +01:00
core_sched.c
cpuacct.c
cpudeadline.c
cpudeadline.h
cpufreq.c
cpufreq_schedutil.c
cpupri.c
cpupri.h
cputime.c
deadline.c sched/deadline: Use ENQUEUE_MOVE to allow priority change 2026-01-15 21:57:53 +01:00
debug.c
ext.c sched: Audit MOVE vs balance_callbacks 2026-01-15 21:57:53 +01:00
ext.h
ext_idle.c
ext_idle.h
ext_internal.h
fair.c sched/fair: Revert force wakeup preemption 2026-01-23 11:53:20 +01:00
features.h sched/fair: Disable scheduler feature NEXT_BUDDY 2026-01-23 11:53:19 +01:00
idle.c sched/fair: Fix pelt clock sync when entering idle 2026-01-21 17:46:08 +01:00
isolation.c
loadavg.c
membarrier.c
pelt.c treewide: Update email address 2026-01-11 06:09:11 -10:00
pelt.h
psi.c
rq-offsets.c
rt.c
sched-pelt.h
sched.h sched: Audit MOVE vs balance_callbacks 2026-01-15 21:57:53 +01:00
smp.h
stats.c
stats.h sched/core: Fix psi_dequeue() for Proxy Execution 2025-12-06 10:13:16 +01:00
stop_task.c
swait.c
syscalls.c sched: Deadline has dynamic priority 2026-01-15 21:57:53 +01:00
topology.c
wait.c
wait_bit.c