From: Linus Walleij <linus.ml.walleij@gmail.com>
To: Raistlin <raistlin@linux.it>
Cc: Peter Zijlstra <peterz@infradead.org>,
claudio@evidence.eu.com, michael@evidence.eu.com, mingo@elte.hu,
linux-kernel@vger.kernel.org, tglx@linutronix.de,
johan.eker@ericsson.com, p.faure@akatech.ch,
Fabio Checconi <fabio@gandalf.sssup.it>,
Dhaval Giani <dhaval.giani@gmail.com>,
Steven Rostedt <rostedt@goodmis.org>,
Tommaso Cucinotta <tommaso.cucinotta@sssup.it>
Subject: Re: [RFC][PATCH] SCHED_EDF scheduling class
Date: Tue, 22 Sep 2009 22:55:28 +0200 [thread overview]
Message-ID: <63386a3d0909221355o45cccdf2j707a5cb4cf36754b@mail.gmail.com> (raw)
In-Reply-To: <1253615424.20345.76.camel@Palantir>
Hi Raistlin,
it's great fun to see this scheduler materialize, I was present at the
workshop in Kaiserslautern and waited for the code since. What I'm
interested in getting a briefing on right now is what practical use EDF
schedulers have, since I think this is what many people will ask for.
I think actually the answers are the same as when I asked at Meld
(of all places) what HRtimers are actually for. And I I got the non-all
inclusive answer that they're for Flight simulators.
Which is obviously in the domain of automatic control.
http://en.wikipedia.org/wiki/Automatic_control
So one application of HRTimers has been to trigger events in
userspace programs, especially when your dealing with issues
related to automatic control. Automatic control is also
mentioned throughout this patch. (Yes, I know HRtimers
have other great uses also, especially in-kernel, those will
remain.)
I am very interested in if you or someone else
could elaborate on the relation between HRtimers and deadline
scheduling. To my untrained mind it looks like HRtimers will
fire events to your task in a very precise manner, but
you cannot currently guarantee that they will then proceed to
process their target task in time (meet a deadline).
I'm under the impression that some people currently use
some periodic HRtimers (through either the timerfd_create system
call I guess, or POSIX timer_create(CLOCK_REALTIME_HR...)
timers combined with some SHED_FIFO or so to achieve the same
thing a deadline scheduler would do, but since SCHED_FIFO cannot
really guarantee that this will work, you simply underutilize
the system a bit, add the CONFIG_PREEMPT_RT patch so the
timers are not blocked by things like slow interrupthandlers or
starvation (priority inversion) and then hope for the best. It turns
out to work. You measure on the system and it has the desired
"hard realtime" characteristics.
Do people do such things? I haven't seen those applications,
they all tend to be closed-source really. I would assume the
vxWorks/pSOS/etc compatibility wrapper libraries do things
like this, do they not?
But let us assume these applications really exist. tglx will probably
tell if I'm totally off track here.
So from here it looks like a problem that was previously solved by
fireing a periodic HRtimer is now better suited to be solved
by scheduling it with a periodic deadlined scheduling policy.
It will be done better, easier and with a guaranteed result.
Is this reasoning generally speaking correct?
Now since that example up there included the RTOS replacement
case, that means the list of possible applications utilizing these very
responsive control systems would be the same as any good old
so-called RTOS and include user-space applications for:
* Any interactive simulations and games
* Industrial automation including robotics
* Process industry applications (e.g. chemical processing, power
plants, paper/car/textile/etc manufacturing)
* Various weapons including missiles
* Medical equipment
* The above will sooner or later include a dataflow which
need some processing on it which leads to thinking of
data (token) flows leading up to:
* Massive parallelization of FunnyStuff like the models found
in OpenDF (also part of the ACTORS project):
http://opendf.svn.sourceforge.net/viewvc/opendf/trunk/models/
here (correct me if I'm wrong) the deadline scheduling
will be used to construct timewise predictable flows in massively
parallel threadpools distributed over several processing nodes etc.
Illustrations include MPEG4 decoding, FIR, FFT so let's
say real-time constrained signal processing on some
time-critical dataflow.
(Don't know the deadline-critical parts of the Mandelbrot
set or the Game of Life though, hehe.)
This sounds a lot like a nail in the coffin for the RTOS and all
its virtualized variants (running Linux inside an RTOS etc).
(Please excuse my bastardized condensed-form popular science
version of the noble goals of the ACTORS project, I only observed
it at a distance so my vision was dimmed.)
Linus Walleij
next prev parent reply other threads:[~2009-09-22 20:55 UTC|newest]
Thread overview: 57+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-09-22 10:30 Raistlin
2009-09-22 11:05 ` Peter Zijlstra
2009-09-22 12:51 ` Raistlin
2009-09-22 18:36 ` Peter Zijlstra
2009-09-23 12:19 ` Raistlin
2009-09-23 12:25 ` Dhaval Giani
2009-09-27 6:55 ` Henrik Austad
2009-09-29 16:10 ` Raistlin
2009-09-29 17:34 ` Chris Friesen
2009-09-30 15:58 ` Raistlin
2009-09-30 17:35 ` Chris Friesen
2009-09-22 11:58 ` Claudio Scordino
2009-09-22 12:38 ` Peter Zijlstra
2009-09-24 16:08 ` Claudio Scordino
2009-09-22 13:24 ` Daniel Walker
2009-09-22 14:01 ` Raistlin
2009-09-22 14:02 ` Daniel Walker
2009-09-22 16:42 ` Peter Zijlstra
2009-09-22 19:11 ` Ingo Molnar
2009-09-23 0:51 ` checkpatch as a tool (was Re: [RFC][PATCH] SCHED_EDF scheduling class) Daniel Walker
2009-09-23 1:01 ` Joe Perches
2009-09-23 1:11 ` Daniel Walker
2009-09-23 19:24 ` Andy Isaacson
2009-09-24 14:58 ` Daniel Walker
2009-09-30 12:06 ` Pavel Machek
2009-09-23 12:22 ` Ingo Molnar
2009-09-23 14:43 ` Daniel Walker
2009-09-30 12:04 ` Pavel Machek
2009-09-23 7:03 ` [RFC][PATCH] SCHED_EDF scheduling class Raistlin
2009-09-23 21:39 ` Steven Rostedt
2009-09-24 0:58 ` GeunSik Lim
2009-09-22 16:38 ` Peter Zijlstra
2009-09-22 23:39 ` Jonathan Corbet
2009-09-22 23:55 ` Daniel Walker
2009-09-23 0:06 ` Jonathan Corbet
2009-09-23 0:40 ` Daniel Walker
2009-09-23 11:46 ` Avi Kivity
2009-09-23 12:25 ` Ingo Molnar
2009-09-23 14:50 ` Daniel Walker
2009-09-23 14:58 ` Avi Kivity
2009-09-23 15:08 ` Daniel Walker
2009-09-23 15:12 ` Avi Kivity
2009-09-23 15:24 ` Daniel Walker
2009-09-30 12:05 ` Pavel Machek
2009-09-22 20:55 ` Linus Walleij [this message]
2009-09-23 13:00 ` Raistlin
2009-09-23 13:22 ` Claudio Scordino
2009-09-23 14:08 ` Linus Walleij
2009-09-23 14:45 ` Raistlin
2009-09-23 12:33 ` Linus Walleij
2009-09-23 12:50 ` Linus Walleij
2009-09-23 13:30 ` Raistlin
2009-09-29 18:15 ` roel kluin
2009-09-30 15:59 ` Raistlin
2009-09-24 0:34 ` GeunSik Lim
2009-09-24 6:08 ` Raistlin
2009-09-24 9:11 ` Claudio Scordino
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=63386a3d0909221355o45cccdf2j707a5cb4cf36754b@mail.gmail.com \
--to=linus.ml.walleij@gmail.com \
--cc=claudio@evidence.eu.com \
--cc=dhaval.giani@gmail.com \
--cc=fabio@gandalf.sssup.it \
--cc=johan.eker@ericsson.com \
--cc=linux-kernel@vger.kernel.org \
--cc=michael@evidence.eu.com \
--cc=mingo@elte.hu \
--cc=p.faure@akatech.ch \
--cc=peterz@infradead.org \
--cc=raistlin@linux.it \
--cc=rostedt@goodmis.org \
--cc=tglx@linutronix.de \
--cc=tommaso.cucinotta@sssup.it \
/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
all inboxes | Powered by JetHome®