path: root/Documentation/scheduler
diff options
authorJ. Bruce Fields <bfields@citi.umich.edu>2008-04-07 20:39:38 (GMT)
committerJonathan Corbet <corbet@lwn.net>2008-04-11 19:21:03 (GMT)
commitd396c5f158547e50c2b78bc984cb4a72d76e969b (patch)
tree78c971a29d215d0102252ddc014f5e3ee2415a5d /Documentation/scheduler
parent8bcd1cc293f4e76edbfd8f422770c80a018b82d9 (diff)
Move sched-rt-group.txt to scheduler/
Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu> Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Diffstat (limited to 'Documentation/scheduler')
2 files changed, 61 insertions, 0 deletions
diff --git a/Documentation/scheduler/00-INDEX b/Documentation/scheduler/00-INDEX
index b5f5ca0..fc234d0 100644
--- a/Documentation/scheduler/00-INDEX
+++ b/Documentation/scheduler/00-INDEX
@@ -12,5 +12,7 @@ sched-domains.txt
- information on scheduling domains.
- How and why the scheduler's nice levels are implemented.
+ - real-time group scheduling.
- information on schedstats (Linux Scheduler Statistics).
diff --git a/Documentation/scheduler/sched-rt-group.txt b/Documentation/scheduler/sched-rt-group.txt
new file mode 100644
index 0000000..1c6332f
--- /dev/null
+++ b/Documentation/scheduler/sched-rt-group.txt
@@ -0,0 +1,59 @@
+Real-Time group scheduling.
+The problem space:
+In order to schedule multiple groups of realtime tasks each group must
+be assigned a fixed portion of the CPU time available. Without a minimum
+guarantee a realtime group can obviously fall short. A fuzzy upper limit
+is of no use since it cannot be relied upon. Which leaves us with just
+the single fixed portion.
+CPU time is divided by means of specifying how much time can be spent
+running in a given period. Say a frame fixed realtime renderer must
+deliver 25 frames a second, which yields a period of 0.04s. Now say
+it will also have to play some music and respond to input, leaving it
+with around 80% for the graphics. We can then give this group a runtime
+of 0.8 * 0.04s = 0.032s.
+This way the graphics group will have a 0.04s period with a 0.032s runtime
+Now if the audio thread needs to refill the DMA buffer every 0.005s, but
+needs only about 3% CPU time to do so, it can do with a 0.03 * 0.005s
+= 0.00015s.
+The Interface:
+system wide:
+[ time is specified in us because the interface is s32; this gives an
+ operating range of ~35m to 1us ]
+The period takes values in [ 1, INT_MAX ], runtime in [ -1, INT_MAX - 1 ].
+A runtime of -1 specifies runtime == period, ie. no limit.
+New groups get the period from /proc/sys/kernel/sched_rt_period_us and
+a runtime of 0.
+Settings are constrained to:
+ \Sum_{i} runtime_{i} / global_period <= global_runtime / global_period
+in order to keep the configuration schedulable.

Privacy Policy