linux-rt-users.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Henrik Austad <henrik@austad.us>
To: Ran Shalit <ranshalit@gmail.com>
Cc: Alison Chaiken <alison@peloton-tech.com>,
	linux-rt-users <linux-rt-users@vger.kernel.org>
Subject: Re: EDF - "earliest deadline first" scheduler
Date: Tue, 4 Apr 2017 07:38:17 +0200	[thread overview]
Message-ID: <20170404053817.GD12288@icarus.home.austad.us> (raw)
In-Reply-To: <CAJ2oMhJ-QgYCttetEF49nDge2UkheudG1MXJemerPm0P7zvUhA@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 2721 bytes --]

On Mon, Apr 03, 2017 at 03:53:27PM +0300, Ran Shalit wrote:
> On Mon, Apr 3, 2017 at 8:06 AM, Ran Shalit <ranshalit@gmail.com> wrote:
> > On Mon, Apr 3, 2017 at 5:38 AM, Alison Chaiken <alison@peloton-tech.com> wrote:
> >>  Ran Shalit <ranshalit@gmail.com> wrote:
> >>> I have found in
> >>> https://wiki.linuxfoundation.org/realtime/documentation/howto/applications/cyclic
> >>> that there is EDF scheduler option for creating a periodic RT thread.
> >>> Yet, I could not understand what's behind the EDF scheduler
> >>
> >>
> >> Have a look at "Using SCHED_DEADLINE" at
> >>
> >> http://elinux.org/ELC_Europe_2016_Presentations
> >>
> >> Also, look for papers on this topic by Juri Lelli.
> >>
> >> HTH,
> >> Alison
> >
> > Hi Alison,
> >
> > Thank you very much.
> > I reviewed the material, which is very interesting, but I am not yet
> > sure which timer are used internally in SCHED_DEADLINE.
> > Is it posix or non-posix ?
> >
> > Thanks,
> > Ran
> 
> I am trying to understand which scheduler is better used with RT.
> In the wiki there is an example for SCHED_FIFO, periodic time.
> But in sched_deadline wiki ( https://wiki.automotivelinux.org/sched_deadline )
> it is said as following:
> "
>  Using SCHED_FIFO/SCHED_RR, instead, we can give that kind of
> guarantee only using a global period, with the constraint that “a
> subgroup must have a smaller or equal period to its parent”.
> The latency experienced by a task (i.e., the time between two
> consecutive executions of a task) is not deterministic and cannot be
> bound, since it highly depends on the number of tasks running in the
> system at that time. Using EDF, instead, this time is deterministic,
> bounded and known at any instant of time."
> 
> I am not sure now. Does it mean that using more than one SCHED_FIFO
> periodic thread is not deterministic compared with SCHED_DEADLINE?

It means that when you use priorities, you basically do a one-way mapping 
between the inherit deadlines in your tasks to a set of static priorities. 
As a developer you know *when* the tasks needs to complete, right? So then 
the job is to pick a priority and hope that no other higher-prioritized 
thread preempts you and cause you to miss your deadline.

And that is the problem with a complicated system, many tasks lead to an 
intractable problem of getting all the priorities right, causing you no end 
to the headache.

With SCHED_DEADLINE, you express your requirements directly as deadlines, 
thus avoid that whole one-way mapping and instead the tasks relative 
priority will adjust as the scheduler now has a _much_ more comprehensive 
view of the requirements.

-- 
Henrik Austad

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 181 bytes --]

  reply	other threads:[~2017-04-04  5:38 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-04-03 12:53 EDF - "earliest deadline first" scheduler Ran Shalit
2017-04-04  5:38 ` Henrik Austad [this message]
2017-04-04  7:30   ` Ran Shalit
  -- strict thread matches above, loose matches on Subject: below --
2017-04-03  2:38 Alison Chaiken
2017-04-03  5:06 ` Ran Shalit
2017-04-04  5:42   ` Henrik Austad
2017-04-02 14:27 Ran Shalit

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=20170404053817.GD12288@icarus.home.austad.us \
    --to=henrik@austad.us \
    --cc=alison@peloton-tech.com \
    --cc=linux-rt-users@vger.kernel.org \
    --cc=ranshalit@gmail.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).