aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/scheduler/sched-design-CFS.txt
diff options
context:
space:
mode:
authorMartin Steigerwald <ms@teamix.de>2008-09-23 07:48:44 -0400
committerIngo Molnar <mingo@elte.hu>2008-09-23 07:49:44 -0400
commit1a73ef6ac3f4b44abc9d1875eb9240d7524a7cf7 (patch)
treeb00508544fc5e25daf3ae7adecfc054151efa4ab /Documentation/scheduler/sched-design-CFS.txt
parent006c75f146e58e080d2b2725a6664f71886e112b (diff)
CFS scheduler: documentation about scheduling policies
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>
Diffstat (limited to 'Documentation/scheduler/sched-design-CFS.txt')
-rw-r--r--Documentation/scheduler/sched-design-CFS.txt28
1 files changed, 26 insertions, 2 deletions
diff --git a/Documentation/scheduler/sched-design-CFS.txt b/Documentation/scheduler/sched-design-CFS.txt
index b2aa856339a7..9d8eb553884c 100644
--- a/Documentation/scheduler/sched-design-CFS.txt
+++ b/Documentation/scheduler/sched-design-CFS.txt
@@ -114,7 +114,31 @@ result.
114 114
115 115
116 116
1175. SCHEDULING CLASSES 1175. Scheduling policies
118
119CFS implements three scheduling policies:
120
121 - SCHED_NORMAL (traditionally called SCHED_OTHER): The scheduling
122 policy that is used for regular tasks.
123
124 - SCHED_BATCH: Does not preempt nearly as often as regular tasks
125 would, thereby allowing tasks to run longer and make better use of
126 caches but at the cost of interactivity. This is well suited for
127 batch jobs.
128
129 - SCHED_IDLE: This is even weaker than nice 19, but its not a true
130 idle timer scheduler in order to avoid to get into priority
131 inversion problems which would deadlock the machine.
132
133SCHED_FIFO/_RR are implemented in sched_rt.c and are as specified by
134POSIX.
135
136The command chrt from util-linux-ng 2.13.1.1 can set all of these except
137SCHED_IDLE.
138
139
140
1416. SCHEDULING CLASSES
118 142
119The new CFS scheduler has been designed in such a way to introduce "Scheduling 143The new CFS scheduler has been designed in such a way to introduce "Scheduling
120Classes," an extensible hierarchy of scheduler modules. These modules 144Classes," an extensible hierarchy of scheduler modules. These modules
@@ -179,7 +203,7 @@ This is the (partial) list of the hooks:
179 203
180 204
181 205
1826. GROUP SCHEDULER EXTENSIONS TO CFS 2067. GROUP SCHEDULER EXTENSIONS TO CFS
183 207
184Normally, the scheduler operates on individual tasks and strives to provide 208Normally, the scheduler operates on individual tasks and strives to provide
185fair CPU time to each task. Sometimes, it may be desirable to group tasks and 209fair CPU time to each task. Sometimes, it may be desirable to group tasks and