Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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.it


Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
parent de58af87
Loading
Loading
Loading
Loading
+18 −0
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@ CONTENTS
   4.1 System-wide settings
   4.2 Task interface
   4.3 Default behavior
   4.4 Behavior of sched_yield()
 5. Tasks CPU affinity
   5.1 SCHED_DEADLINE and cpusets HOWTO
 6. Future plans
@@ -426,6 +427,23 @@ CONTENTS
 Finally, notice that in order not to jeopardize the admission control a
 -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
=====================