Skip to content

Commit e53ada6

Browse files
committed
Merge tag 'sched-urgent-2026-02-01' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull scheduler fix from Ingo Molnar: "Fix a regression in the deferrable dl_server code that can cause the dl_server to be stuck" * tag 'sched-urgent-2026-02-01' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: sched/deadline: Fix 'stuck' dl_server
2 parents 969b572 + 1151354 commit e53ada6

1 file changed

Lines changed: 12 additions & 0 deletions

File tree

kernel/sched/deadline.c

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1034,6 +1034,12 @@ static void update_dl_entity(struct sched_dl_entity *dl_se)
10341034
return;
10351035
}
10361036

1037+
/*
1038+
* When [4] D->A is followed by [1] A->B, dl_defer_running
1039+
* needs to be cleared, otherwise it will fail to properly
1040+
* start the zero-laxity timer.
1041+
*/
1042+
dl_se->dl_defer_running = 0;
10371043
replenish_dl_new_period(dl_se, rq);
10381044
} else if (dl_server(dl_se) && dl_se->dl_defer) {
10391045
/*
@@ -1655,6 +1661,12 @@ void dl_server_update(struct sched_dl_entity *dl_se, s64 delta_exec)
16551661
* dl_server_active = 1;
16561662
* enqueue_dl_entity()
16571663
* update_dl_entity(WAKEUP)
1664+
* if (dl_time_before() || dl_entity_overflow())
1665+
* dl_defer_running = 0;
1666+
* replenish_dl_new_period();
1667+
* // fwd period
1668+
* dl_throttled = 1;
1669+
* dl_defer_armed = 1;
16581670
* if (!dl_defer_running)
16591671
* dl_defer_armed = 1;
16601672
* dl_throttled = 1;

0 commit comments

Comments
 (0)