Skip to content

Commit

Permalink
CFS scheduler: documentation about scheduling policies
Browse files Browse the repository at this point in the history
The documentation about the CFS scheduler is scarse when it comes to
scheduling policies. This patch adds a chapter about the scheduling
policies it supports. Peter Zijlstra provided most of the information
for it in

http://marc.info/?l=linux-kernel&m=122210038326356&w=2

Signed-off-by: Martin Steigerwald <ms@teamix.de>
Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
  • Loading branch information
Martin Steigerwald authored and Ingo Molnar committed Sep 23, 2008
1 parent 006c75f commit 1a73ef6
Showing 1 changed file with 26 additions and 2 deletions.
28 changes: 26 additions & 2 deletions Documentation/scheduler/sched-design-CFS.txt
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,31 @@ result.



5. SCHEDULING CLASSES
5. Scheduling policies

CFS implements three scheduling policies:

- SCHED_NORMAL (traditionally called SCHED_OTHER): The scheduling
policy that is used for regular tasks.

- SCHED_BATCH: Does not preempt nearly as often as regular tasks
would, thereby allowing tasks to run longer and make better use of
caches but at the cost of interactivity. This is well suited for
batch jobs.

- SCHED_IDLE: This is even weaker than nice 19, but its not a true
idle timer scheduler in order to avoid to get into priority
inversion problems which would deadlock the machine.

SCHED_FIFO/_RR are implemented in sched_rt.c and are as specified by
POSIX.

The command chrt from util-linux-ng 2.13.1.1 can set all of these except
SCHED_IDLE.



6. SCHEDULING CLASSES

The new CFS scheduler has been designed in such a way to introduce "Scheduling
Classes," an extensible hierarchy of scheduler modules. These modules
Expand Down Expand Up @@ -179,7 +203,7 @@ This is the (partial) list of the hooks:



6. GROUP SCHEDULER EXTENSIONS TO CFS
7. GROUP SCHEDULER EXTENSIONS TO CFS

Normally, the scheduler operates on individual tasks and strives to provide
fair CPU time to each task. Sometimes, it may be desirable to group tasks and
Expand Down

0 comments on commit 1a73ef6

Please sign in to comment.