Commit b95202a3 authored by Tommaso Cucinotta's avatar Tommaso Cucinotta Committed by Ingo Molnar

sched/deadline: Document behavior of sched_yield()

This is a documentation only patch, explaining the
behavior of sched_yield() when a SCHED_DEADLINE
task calls it (give up remaining runtime and be
throttled until next period begins).
Signed-off-by: default avatarTommaso Cucinotta <tommaso.cucinotta@sssup.it>
Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: default avatarJuri Lelli <juri.lelli@arm.com>
Reviewed-by: default avatarLuca Abeni <luca.abeni@unitn.it>
Reviewed-by: default avatarDaniel Bristot de Oliveira <bristot@redhat.com>
Cc: Juri Lelli <juri.lelli@gmail.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-dl@retis.sssup.it
Link: http://lkml.kernel.org/r/1473443117-11794-2-git-send-email-tommaso.cucinotta@sssup.itSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
parent de58af87
...@@ -16,6 +16,7 @@ CONTENTS ...@@ -16,6 +16,7 @@ CONTENTS
4.1 System-wide settings 4.1 System-wide settings
4.2 Task interface 4.2 Task interface
4.3 Default behavior 4.3 Default behavior
4.4 Behavior of sched_yield()
5. Tasks CPU affinity 5. Tasks CPU affinity
5.1 SCHED_DEADLINE and cpusets HOWTO 5.1 SCHED_DEADLINE and cpusets HOWTO
6. Future plans 6. Future plans
...@@ -426,6 +427,23 @@ CONTENTS ...@@ -426,6 +427,23 @@ CONTENTS
Finally, notice that in order not to jeopardize the admission control a Finally, notice that in order not to jeopardize the admission control a
-deadline task cannot fork. -deadline task cannot fork.
4.4 Behavior of sched_yield()
-----------------------------
When a SCHED_DEADLINE task calls sched_yield(), it gives up its
remaining runtime and is immediately throttled, until the next
period, when its runtime will be replenished (a special flag
dl_yielded is set and used to handle correctly throttling and runtime
replenishment after a call to sched_yield()).
This behavior of sched_yield() allows the task to wake-up exactly at
the beginning of the next period. Also, this may be useful in the
future with bandwidth reclaiming mechanisms, where sched_yield() will
make the leftoever runtime available for reclamation by other
SCHED_DEADLINE tasks.
5. Tasks CPU affinity 5. Tasks CPU affinity
===================== =====================
......
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