Commit ad67dc31 authored by Luca Abeni's avatar Luca Abeni Committed by Ingo Molnar

Documentation/scheduler/sched-deadline.txt: Fix terminology and improve clarity

Several small changes regarding SCHED_DEADLINE documentation
that fix terminology and improve clarity and readability:

 - "current runtime" becomes "remaining runtime"

 - readablity of an equation is improved by introducing more spacing

 - clarify when admission control will certainly fail

 - new URL for CBS technical report

 - substitue "smallest" with "earliest"
Signed-off-by: default avatarLuca Abeni <luca.abeni@unitn.it>
Signed-off-by: default avatarJuri Lelli <juri.lelli@arm.com>
Reviewed-by: default avatarHenrik Austad <henrik@austad.us>
Cc: Randy Dunlap <rdunlap@infradead.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Dario Faggioli <raistlin@linux.it>
Cc: Juri Lelli <juri.lelli@gmail.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Link: http://lkml.kernel.org/r/1410256636-26171-2-git-send-email-juri.lelli@arm.comSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
parent 8236d907
...@@ -45,17 +45,17 @@ CONTENTS ...@@ -45,17 +45,17 @@ CONTENTS
every time the task wakes up, the scheduler computes a "scheduling deadline" every time the task wakes up, the scheduler computes a "scheduling deadline"
consistent with the guarantee (using the CBS[2,3] algorithm). Tasks are then consistent with the guarantee (using the CBS[2,3] algorithm). Tasks are then
scheduled using EDF[1] on these scheduling deadlines (the task with the scheduled using EDF[1] on these scheduling deadlines (the task with the
smallest scheduling deadline is selected for execution). Notice that this earliest scheduling deadline is selected for execution). Notice that this
guaranteed is respected if a proper "admission control" strategy (see Section guaranteed is respected if a proper "admission control" strategy (see Section
"4. Bandwidth management") is used. "4. Bandwidth management") is used.
Summing up, the CBS[2,3] algorithms assigns scheduling deadlines to tasks so Summing up, the CBS[2,3] algorithms assigns scheduling deadlines to tasks so
that each task runs for at most its runtime every period, avoiding any that each task runs for at most its runtime every period, avoiding any
interference between different tasks (bandwidth isolation), while the EDF[1] interference between different tasks (bandwidth isolation), while the EDF[1]
algorithm selects the task with the smallest scheduling deadline as the one algorithm selects the task with the earliest scheduling deadline as the one
to be executed first. Thanks to this feature, also tasks that do not to be executed next. Thanks to this feature, tasks that do not strictly comply
strictly comply with the "traditional" real-time task model (see Section 3) with the "traditional" real-time task model (see Section 3) can effectively
can effectively use the new policy. use the new policy.
In more details, the CBS algorithm assigns scheduling deadlines to In more details, the CBS algorithm assigns scheduling deadlines to
tasks in the following way: tasks in the following way:
...@@ -64,45 +64,45 @@ CONTENTS ...@@ -64,45 +64,45 @@ CONTENTS
"deadline", and "period" parameters; "deadline", and "period" parameters;
- The state of the task is described by a "scheduling deadline", and - The state of the task is described by a "scheduling deadline", and
a "current runtime". These two parameters are initially set to 0; a "remaining runtime". These two parameters are initially set to 0;
- When a SCHED_DEADLINE task wakes up (becomes ready for execution), - When a SCHED_DEADLINE task wakes up (becomes ready for execution),
the scheduler checks if the scheduler checks if
current runtime runtime remaining runtime runtime
---------------------------------- > ---------------- ---------------------------------- > ---------
scheduling deadline - current time period scheduling deadline - current time period
then, if the scheduling deadline is smaller than the current time, or then, if the scheduling deadline is smaller than the current time, or
this condition is verified, the scheduling deadline and the this condition is verified, the scheduling deadline and the
current budget are re-initialised as remaining runtime are re-initialised as
scheduling deadline = current time + deadline scheduling deadline = current time + deadline
current runtime = runtime remaining runtime = runtime
otherwise, the scheduling deadline and the current runtime are otherwise, the scheduling deadline and the remaining runtime are
left unchanged; left unchanged;
- When a SCHED_DEADLINE task executes for an amount of time t, its - When a SCHED_DEADLINE task executes for an amount of time t, its
current runtime is decreased as remaining runtime is decreased as
current runtime = current runtime - t remaining runtime = remaining runtime - t
(technically, the runtime is decreased at every tick, or when the (technically, the runtime is decreased at every tick, or when the
task is descheduled / preempted); task is descheduled / preempted);
- When the current runtime becomes less or equal than 0, the task is - When the remaining runtime becomes less or equal than 0, the task is
said to be "throttled" (also known as "depleted" in real-time literature) said to be "throttled" (also known as "depleted" in real-time literature)
and cannot be scheduled until its scheduling deadline. The "replenishment and cannot be scheduled until its scheduling deadline. The "replenishment
time" for this task (see next item) is set to be equal to the current time" for this task (see next item) is set to be equal to the current
value of the scheduling deadline; value of the scheduling deadline;
- When the current time is equal to the replenishment time of a - When the current time is equal to the replenishment time of a
throttled task, the scheduling deadline and the current runtime are throttled task, the scheduling deadline and the remaining runtime are
updated as updated as
scheduling deadline = scheduling deadline + period scheduling deadline = scheduling deadline + period
current runtime = current runtime + runtime remaining runtime = remaining runtime + runtime
3. Scheduling Real-Time Tasks 3. Scheduling Real-Time Tasks
...@@ -147,6 +147,8 @@ CONTENTS ...@@ -147,6 +147,8 @@ CONTENTS
and the absolute deadlines (d_j) coincide, so a proper admission control and the absolute deadlines (d_j) coincide, so a proper admission control
allows to respect the jobs' absolute deadlines for this task (this is what is allows to respect the jobs' absolute deadlines for this task (this is what is
called "hard schedulability property" and is an extension of Lemma 1 of [2]). called "hard schedulability property" and is an extension of Lemma 1 of [2]).
Notice that if runtime > deadline the admission control will surely reject
this task, as it is not possible to respect its temporal constraints.
References: References:
1 - C. L. Liu and J. W. Layland. Scheduling algorithms for multiprogram- 1 - C. L. Liu and J. W. Layland. Scheduling algorithms for multiprogram-
...@@ -156,7 +158,7 @@ CONTENTS ...@@ -156,7 +158,7 @@ CONTENTS
Real-Time Systems. Proceedings of the 19th IEEE Real-time Systems Real-Time Systems. Proceedings of the 19th IEEE Real-time Systems
Symposium, 1998. http://retis.sssup.it/~giorgio/paps/1998/rtss98-cbs.pdf Symposium, 1998. http://retis.sssup.it/~giorgio/paps/1998/rtss98-cbs.pdf
3 - L. Abeni. Server Mechanisms for Multimedia Applications. ReTiS Lab 3 - L. Abeni. Server Mechanisms for Multimedia Applications. ReTiS Lab
Technical Report. http://xoomer.virgilio.it/lucabe72/pubs/tr-98-01.ps Technical Report. http://disi.unitn.it/~abeni/tr-98-01.pdf
4. Bandwidth management 4. Bandwidth management
======================= =======================
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment