From: Luca Abeni <lucabe72@email.it>
To: Raistlin <raistlin@linux.it>
Cc: linux-kernel <linux-kernel@vger.kernel.org>,
Song Yuan <song.yuan@ericsson.com>,
Dmitry Adamushko <dmitry.adamushko@gmail.com>,
Peter Zijlstra <peterz@infradead.org>,
Thomas Gleixner <tglx@linutronix.de>,
Nicola Manica <nicola.manica@disi.unitn.it>,
Claudio Scordino <claudio@evidence.eu.com>,
Harald Gustafsson <harald.gustafsson@ericsson.com>,
Bjoern Brandenburg <bbb@email.unc.edu>,
bastoni@cs.unc.edu, Giuseppe Lipari <lipari@retis.sssup.it>
Subject: Re: periods and deadlines in SCHED_DEADLINE
Date: Sat, 10 Jul 2010 09:09:21 +0200 [thread overview]
Message-ID: <1278745761.5248.15.camel@localhost> (raw)
In-Reply-To: <1278682707.6083.227.camel@Palantir>
Hi all,
first of all, thanks for including me in these emails, and sorry for the
delay...
On Fri, 2010-07-09 at 15:38 +0200, Raistlin wrote:
> Hi all,
>
> So, talking to Peter and Thomas at the OSPERT workshop in Brussels [1],
> the so called "sporaidic task model" came out many many times!
I assume here you are simply talking about tasks with relative deadline
different from period, right? (the term "sporadic" is more often
associated with non-periodic activation patterns).
[...]
> - do you think it could be useful to have a different syscall to deal
> with the period parameter (if it's different from deadline), e.g.,
> something useful to make the task periodic as you have (if I remember
> well) in Xenomai or RTAI?
Maybe I am confused because I missed the initial part of the discussion,
but here I think there is the risk to mix two different concepts: the
"reservation period" (that is, the period P used to postpone the
scheduling deadline when the budget arrives to 0), and the "task
period" (which has to do with the periodicity of tasks activations). For
implementing a periodic behaviour in the task (this is, AFAIK, what RTAI
similar API provide), no new syscall is needed: clock_nanosleep() is
enough. See http://www.disi.unitn.it/~abeni/RTOS/rtapi.pdf for a
(stupid) example.
The reservation period, on the other hand, is a scheduling parameter,
and I think that setting it with extended versions of sched_setparam(),
sched_setscheduler() and similar is ok.
> If you think it's worth doing that, do you think the
> task_wait_interval() syscall that we already added could/should do
> the job?
I do not remember what task_wait_interval() does :)
Is it the syscall you added to indicate the end of a job?
> Basically, from the scheduling point of view, what it could happen is
> that I'm still _NOT_ going to allow a task with runtime Q_i, deadline
> D_i and period P_i to use more bandwidth than Q_i/P_i, I'm still using D
> for scheduling but the passing of the simple in-kernel admission test
> Sum_i(Q_i/P_i)<1 won't guarantee that the task will always finish its
> jobs before D.
I think if you want a different P_i and D_i you can use D_i for
generating new scheduling deadlines on task arrivals as "d = t + D_i",
and P_i to postpone the scheduling deadlines as "d = d + T_i" when the
budget is 0.
Depending on the replenishment amount you use, you might need to modify
the admission test as "Sum_i(Q_i/min{P_i,D_i}) < 1" or not (if you
always replenish to Q_i, then you need a modified admission test;
otherwise, you can compute the replenishment amount so that the
admission test is unaffected).
Thanks,
Luca
next prev parent reply other threads:[~2010-07-10 7:16 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-07-09 13:38 periods and deadlines in SCHED_DEADLINE Raistlin
2010-07-09 14:18 ` Peter Zijlstra
2010-07-09 14:51 ` Bjoern Brandenburg
2010-07-09 16:35 ` Peter Zijlstra
2010-07-10 9:01 ` Raistlin
2010-07-10 10:28 ` Peter Zijlstra
2010-07-10 14:49 ` Raistlin
2010-07-11 6:42 ` Bjoern Brandenburg
2010-08-03 9:41 ` Peter Zijlstra
2010-08-04 3:52 ` Andrea Bastoni
2010-08-04 7:14 ` Peter Zijlstra
2010-08-04 5:18 ` Bjoern Brandenburg
2010-08-03 9:46 ` Peter Zijlstra
2010-08-04 3:53 ` Andrea Bastoni
2010-08-04 5:02 ` Bjoern Brandenburg
2010-07-10 7:08 ` Raistlin
2010-07-11 6:46 ` Bjoern Brandenburg
2010-08-03 8:16 ` Peter Zijlstra
2010-08-03 11:42 ` Gregory Haskins
2010-08-04 6:30 ` Bjoern Brandenburg
2010-07-09 14:24 ` Peter Zijlstra
2010-07-10 7:11 ` Luca Abeni
2010-07-10 10:36 ` Peter Zijlstra
2010-07-11 6:12 ` Bjoern Brandenburg
2010-07-09 14:30 ` Peter Zijlstra
2010-07-10 9:14 ` Raistlin
2010-07-10 17:19 ` Harald Gustafsson
2010-07-10 18:31 ` Peter Zijlstra
2010-07-10 20:08 ` Harald Gustafsson
2010-07-10 21:52 ` Raistlin
2010-07-11 5:41 ` Harald Gustafsson
2010-07-11 7:32 ` Bjoern Brandenburg
2010-07-12 10:21 ` Harald Gustafsson
2010-08-04 5:55 ` Bjoern Brandenburg
2010-08-02 19:34 ` Peter Zijlstra
2010-08-04 4:44 ` Bjoern Brandenburg
2010-07-09 14:32 ` Peter Zijlstra
2010-07-10 7:50 ` Raistlin
2010-07-10 15:11 ` Peter Zijlstra
2010-07-10 17:29 ` Harald Gustafsson
2010-07-11 6:15 ` Bjoern Brandenburg
2010-07-10 7:09 ` Luca Abeni [this message]
2010-07-10 9:20 ` Raistlin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1278745761.5248.15.camel@localhost \
--to=lucabe72@email.it \
--cc=bastoni@cs.unc.edu \
--cc=bbb@email.unc.edu \
--cc=claudio@evidence.eu.com \
--cc=dmitry.adamushko@gmail.com \
--cc=harald.gustafsson@ericsson.com \
--cc=linux-kernel@vger.kernel.org \
--cc=lipari@retis.sssup.it \
--cc=nicola.manica@disi.unitn.it \
--cc=peterz@infradead.org \
--cc=raistlin@linux.it \
--cc=song.yuan@ericsson.com \
--cc=tglx@linutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.