As I understand, on modern Linux, deadline scheduler is implemented using constant bandwidth server (CBS) and earliest deadline first (EDF). Say I assigned X number of processes to 6 out of 12 CPUs using cpuset. Assuming there's no other significant process running on the 6 CPUs. In this case, I feel that using SCHED_DEADLINE on all X processes (with default budget and period) has no difference from just using normal completely fair scheduler, because both would cause all X processes to be run for equal amount of CPU time. Is my understanding correct?
Asked
Active
Viewed 106 times
1 Answers
1
There are at least 2 differences:
- The SCHED_DEADLINE tasks preempt any other task as long as they are not blocked and the runtime is not exhausted.
- The SCHED_DEADLINE tasks gets throttled when their runtime is exhausted, even if they are not blocked and the system is idle.
A further note: starting from kernel 4.13, the CBS algorithm has been replaced by GRUB, which also supports bandwidth reclaiming.

Claudio
- 10,614
- 4
- 31
- 71