mr49
mr49

Reputation: 1063

With cpuset, is using deadline scheduler on all processes effectively same as using normal completely fair scheduler?

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?

Upvotes: 0

Views: 186

Answers (1)

Claudio
Claudio

Reputation: 10947

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.

Upvotes: 1

Related Questions