Thread (9 messages) 9 messages, 3 authors, 2014-05-13

Re: [SCHED_DEADLINE man pages 2/2] sched(7) SCHED_DEADLINE

flat view

From: Michael Kerrisk (man-pages) <hidden>
Date: 2014-05-13 18:51:29
Also in: linux-man, lkml

Hello Juri,

On 05/13/2014 05:52 PM, Juri Lelli wrote:
Hello,

On Tue, 13 May 2014 17:00:57 +0200
"Michael Kerrisk (man-pages)" [off-list ref] wrote:
quoted
Hello Peter et al.

Here is the section of the sched(7) page that describes SCHED_DEADLINE,
as rendered text, with the (entire) raw page source attached. Please 
carefully review.

Cheers,

Michael
[...]
quoted
       The following diagram clarifies these terms:

           arrival/wakeup                   absolute deadline
                |    start time                   |
                |        |                        |
                v        v                        v
           -----x--------xooooooooooooooooo-------x--------x---
                         |<- comp. time ->|
                |<------- relative deadline ----->|
                |<-------------- period ------------------>|

       When  setting  a  SCHED_DEADLINE  policy  for  a thread using
       sched_setattr(2), one can specify three parameters:  Runtime,
       Deadline,  and  Period.   These parameters do not necessarily
       correspond to the aforementioned terms: usual practice is  to
       set  Runtime to something bigger than the average computation
       time (or worst-case execution time for hard real-time tasks),
       Deadline  to  the relative deadline, and Period to the period
       of the task.  Thus, for SCHED_DEADLINE scheduling, we have:

           arrival/wakeup                   absolute deadline
                |    start time                   |
                |        |                        |
                v        v                        v
           -----x--------xooooooooooooooooo-------x--------x---
                         |<-- Runtime --->|
                           |<-- Runtime   --->|

I originally drew this slightly bigger than comp. time above because we
usually don't want tasks to be throttled in the average case. It's just
a rule of thumb.
Ahh -- yes, I see now that I messed this up when I tweaked the
ASCII art. Thanks for catching that. Fixed now.
quoted
                |<----------- Deadline ---------->|
                |<-------------- Period ------------------>|

       The three deadline-scheduling parameters  correspond  to  the
       sched_runtime, sched_deadline, and sched_period fields of the
       sched_attr structure;  see  sched_setattr(2).   These  fields
       express  value  in nanoseconds.  If sched_period is specified
       as 0, then it is made the same as sched_deadline.

       The kernel requires that:

           sched_runtime <= sched_deadline <= sched_period

       In addition, under the current  implementation,  all  of  the
       parameter  values  must be at least 1024 (i.e., just over one
       microsecond, which is the resolution of the  implementation).
And below 2^63, as per the last bug fix we discussed.
Fixed.

Cheers,

Michael


-- 
Michael Kerrisk
Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/
Linux/UNIX System Programming Training: http://man7.org/training/
--
To unsubscribe from this list: send the line "unsubscribe linux-man" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help