Commit 8419b8c5 authored by Peter Zijlstra's avatar Peter Zijlstra Committed by Treehugger Robot
Browse files

BACKPORT: FROMGIT: sched/deadline: Fix dl_server behaviour



John reported undesirable behaviour with the dl_server since commit:
cccb45d7 ("sched/deadline: Less agressive dl_server handling").

When starving fair tasks on purpose (starting spinning FIFO tasks),
his fair workload, which often goes (briefly) idle, would delay fair
invocations for a second, running one invocation per second was both
unexpected and terribly slow.

The reason this happens is that when dl_se->server_pick_task() returns
NULL, indicating no runnable tasks, it would yield, pushing any later
jobs out a whole period (1 second).

Instead simply stop the server. This should restore behaviour in that
a later wakeup (which restarts the server) will be able to continue
running (subject to the CBS wakeup rules).

Notably, this does not re-introduce the behaviour cccb45d7 set
out to solve, any start/stop cycle is naturally throttled by the timer
period (no active cancel).

Fixes: cccb45d7 ("sched/deadline: Less agressive dl_server handling")
Reported-by: default avatarJohn Stultz <jstultz@google.com>
Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
Tested-by: default avatarJohn Stultz <jstultz@google.com>
(cherry picked from commit 2dcbcce9bfac6ddc2e2f9243fa846a875371de79
 git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git

 sched/urgent)
[jstultz: Preserved removed structure field for KMI]
Signed-off-by: default avatarJohn Stultz <jstultz@google.com>
Change-Id: Iaf55e0f3cb072fad2b961db8f8cd518ec35313c5
Bug: 433623690
parent 741f2ff0
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment