[PATCH] CFS scheduler: documentation about scheduling policies

From: Martin Steigerwald
Date: Tue Sep 23 2008 - 05:01:53 EST


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

This patch is based on 2.6.27-rc7.

Signed-off-by: Martin Steigerwald <ms@xxxxxxxxx>

---
--- sched-design-CFS.txt-2.6.27-rc7 2008-07-13 23:51:29.000000000 +0200
+++ sched-design-CFS.txt 2008-09-23 10:33:01.107393509 +0200
@@ -118,6 +118,29 @@ Some implementation details:
quite a bit simpler as a result.


+Supported 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.
+
Group scheduler extension to CFS
================================

--
Martin Steigerwald - team(ix) GmbH - http://www.teamix.de
gpg: 19E3 8D42 896F D004 08AC A0CA 1E10 C593 0399 AE90

Attachment: signature.asc
Description: This is a digitally signed message part.