diff options
author | Martin Steigerwald <ms@teamix.de> | 2008-09-23 07:48:44 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-09-23 07:49:44 -0400 |
commit | 1a73ef6ac3f4b44abc9d1875eb9240d7524a7cf7 (patch) | |
tree | b00508544fc5e25daf3ae7adecfc054151efa4ab /Documentation/scheduler/sched-design-CFS.txt | |
parent | 006c75f146e58e080d2b2725a6664f71886e112b (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.txt | 28 |
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 | ||
117 | 5. SCHEDULING CLASSES | 117 | 5. Scheduling policies |
118 | |||
119 | CFS 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 | |||
133 | SCHED_FIFO/_RR are implemented in sched_rt.c and are as specified by | ||
134 | POSIX. | ||
135 | |||
136 | The command chrt from util-linux-ng 2.13.1.1 can set all of these except | ||
137 | SCHED_IDLE. | ||
138 | |||
139 | |||
140 | |||
141 | 6. SCHEDULING CLASSES | ||
118 | 142 | ||
119 | The new CFS scheduler has been designed in such a way to introduce "Scheduling | 143 | The new CFS scheduler has been designed in such a way to introduce "Scheduling |
120 | Classes," an extensible hierarchy of scheduler modules. These modules | 144 | Classes," 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 | ||
182 | 6. GROUP SCHEDULER EXTENSIONS TO CFS | 206 | 7. GROUP SCHEDULER EXTENSIONS TO CFS |
183 | 207 | ||
184 | Normally, the scheduler operates on individual tasks and strives to provide | 208 | Normally, the scheduler operates on individual tasks and strives to provide |
185 | fair CPU time to each task. Sometimes, it may be desirable to group tasks and | 209 | fair CPU time to each task. Sometimes, it may be desirable to group tasks and |