linux-rt-users.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Patrice Kadionik <kadionik@enseirb-matmeca.fr>
To: unlisted-recipients:; (no To-header on input)
Cc: linux-rt-users <linux-rt-users@vger.kernel.org>
Subject: Re: preempt rt in commercial use
Date: Wed, 15 Sep 2010 08:22:00 +0200	[thread overview]
Message-ID: <4C906608.8080906@enseirb-matmeca.fr> (raw)
In-Reply-To: <4C8FF2B6.2090205@us.ibm.com>

  Le 15/09/2010 00:09, Nivedita Singhvi a écrit :
> On 09/14/2010 10:38 AM, Gregory Haskins wrote:
>
>>> No.  Preempt rt it's not hard realtime.
>>
>> This is not technically correct, but a common misconception. "Hard" 
>> vs "Soft" is a property of the _application_, not the os/platform 
>> itself, and it's based on how tolerant a given application is to 
>> missed deadlines.
>>
>> "Hard" might be something like professional lossless audio, nuclear 
>> fuel-rod control, bomb-squad robotics, tele-medicine, etc, where the 
>> result of a missed deadline can have a serious/unacceptable negative 
>> impact (death, injury, SLA failure, etc).  "Soft" might be telecom 
>> audio, high-frequency financial trading, etc, where misses (crappy 
>> audio quality, missed market opportunity, etc) are certainly not 
>> desired, but can technically be gracefully recovered from.
>>
>> Any given platform (os and hardware combo) will have quantifiable 
>> performance/latency characteristics.  If those characteristics exceed 
>> the requirements of your application, they it would generally work to 
>> run a "hard rt" application on that platform.  If those 
>> characteristics<= your app, it probably will not meet your deadlines 
>> and therefore, a hard-rt app will fail.
>>
>> Consider a fictious nuclear fuel rod control applications with 
>> requirements for a period of 20s, 500ms dutycycle, and with +- 1s 
>> jitter tolerance.  Failure means reactor meltdown (this is 
>> hard-realtime) yet preempt-rt could certainly handle this.  Heck, 
>> mainline linux could probably handle this.  On the other hand, if 
>> anyone out there plans on doing fuel-rod control with software, 
>> please tell me so I can leave the continent. ;)  But the point is, 
>> it's a hard-realtime application and it can be done even with 
>> preempt-rt.  As you scale the applicaiton's requirements tighter and 
>> tighter, you will eventually find the limits of the platform to which 
>> it is no longer acceptable to run the application.  On modern x86 
>> desktops, these limits are in the order of 10us-150us.
>>
>> The biggest challenge is _proving_ that a given platform actually 
>> possesses the desired performance characteristics.  This is 
>> especially difficult with preempt-rt given that its based on a 
>> general purpose OS (linux) and a large one that that.  Smaller, more 
>> RT specific os designs may be easier to prove every path has a 
>> maximum latency of "X".  That said, there are very few products out 
>> there that could probably fit that description and most will have 
>> trouble proving beyond a shadow of doubt.  In addition, the 
>> preempt-rt community is very responsive and treats every latency 
>> source as a "bug" to be fixed/improved.
>>
>> So bottom line, if in doubt, I suggest you give preempt-rt a try.  
>> Linux in general boasts probably the broadest support profile of any 
>> platform out there.  In addition, it's configuration is so finely 
>> grained that you can probably scale it back to a lean, mean, 
>> low-latency environment that will do what you need for perhaps all 
>> but the most stringent requirements.  Where it wouldn't work, perhaps 
>> only dedicated hardware may help anyway.
>
>
Hi Nivedita;
> I would go further and say people need to stop using the terms
> "hard" and "soft". There isn't a binary yes/no answer to the real-time
> requirements spectrum.
>
I don't agree with that.
We are all OK to say that the application or the process to control 
fixes the timing constraints to the overall HW/SW system.

If the application can NEVER miss an event or a deadline because it will 
be catastrophic, we MUST use a hard RTOS.
If the application supports to miss (from time to time) an event or a 
deadline without catastrophic consequence, we can use a soft RTOS (or a 
hard RTOS if we want).
Not thinking hard nor soft realtime can have dramatic consequences.

Until now, PREEMPT-RT is a nice solution as soft RTOS and offers no 
guaranty on an very big latency appeared in a particular case. Thinking 
that PREEMPT-RT is a hard RTOS is false.
> Applications can have varying response time requirements, from
> microseconds to milliseconds to seconds to minutes as Greg says above.
>
> Applications might have differing penalties for missed deadlines:
>  * nuclear reactor explodes
>  * I lose a trade and it costs me money
>  * I get a slightly different stock price quoted to me
>  * Justin Bieber sounds a little hoarse
>
> If you're discussing Linux real-time, chances are your application
> does not fall in the first one. Typically a very custom engineered
> solution (hardware and software) is used for those who have rather
> severe constraints.
>
> The concept of "hard" as being mathematically/logically provable
> in terms of specs and code examination is nice, but not very practical.
> As other people have pointed out frequently, given any system, it's
> possible to break its guaranteed deadlines (catastrophic hw failure,
> etc.
You're right.
In case of possible HW failure, HW design has HW redundancies.

This discussion is very interesting but as I said in my first response, 
it will be the troll for many years...

Cheers;

Patrice
>
> The real-time Linux patchset (CONFIG_PREEMPT_RT) provides real-time
> support in Linux. As you might expect from a general-purpose OS
> providing real-time, it's providing increased determinism and better
> control over your system (most significantly, your kernel tasks).
>
> A more preemptive kernel and system with better time granularity
> provides better real-time response compared to a standard kernel.
>
> It's important to note that we're not providing guarantees. Latency
> response time expectations are really based on empirical evidence,
> testing with common hw/sw/configurations and debugging issues when
> an issue is reported.
>
> Seriously, the terms "hard" and "soft" really only serve to either
> confuse or have little value (other than "custom" and "non-custom").
>
> thanks,
> Nivedita
>
>
>
> -- 
> To unsubscribe from this list: send the line "unsubscribe 
> linux-rt-users" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>


-- 
Patrice Kadionik. F6KQH / F4CUQ
-----------

+----------------------------------------------------------------------+
+"Tout doit etre aussi simple que possible, pas seulement plus simple" +
+----------------------------------------------------------------------+
+ Patrice Kadionik             http://www.enseirb-matmeca.fr/~kadionik +
+ IMS Laboratory               http://www.ims-bordeaux.fr/             +
+ ENSEIRB-MATMECA              http://www.enseirb-matmeca.fr           +
+ PO BOX 99                    fax   : +33 5.56.37.20.23               +
+ 33402 TALENCE Cedex          voice : +33 5.56.84.23.47               +
+ FRANCE                       mailto:patrice.kadionik@ims-bordeaux.fr +
+----------------------------------------------------------------------+

--
To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  reply	other threads:[~2010-09-15  6:22 UTC|newest]

Thread overview: 66+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-09-14  8:10 preempt rt in commercial use Raz
2010-09-14  9:04 ` Rolando Martins
2010-09-14  9:10   ` Raz
2010-09-14  9:20     ` Rolando Martins
2010-09-14  9:17 ` Nikita V. Youshchenko
2010-09-14  9:24   ` Raz
2010-09-14  9:44     ` Robert Schwebel
2010-09-14 12:16       ` Armin Steinhoff
2010-09-14 13:04         ` Daniel James
2010-09-14 13:08         ` Pradyumna Sampath
2010-09-14 22:11           ` Nivedita Singhvi
2010-09-14 13:09         ` Klaas van Gend
2010-09-14 13:17         ` David Kastrup
2010-09-14 13:37           ` Darcy Watkins
2010-09-14 13:58         ` Patrice Kadionik
2010-09-14 14:21       ` Jeff Angielski
2010-09-14 14:30         ` Nikita V. Youshchenko
2010-09-14 14:49           ` Jeff Angielski
2010-09-14 22:20             ` Nivedita Singhvi
2010-09-15  7:48               ` Armin Steinhoff
2010-09-15 14:09                 ` Nivedita Singhvi
2010-09-15 14:45                   ` Pradyumna Sampath
2010-09-16 10:17                     ` Daniel James
2010-09-16 10:35                       ` Pradyumna Sampath
2010-09-16 15:19                       ` Raz
2010-09-15 15:38                   ` David Kastrup
2010-09-15 16:02                     ` Nivedita Singhvi
2010-09-15 16:20                       ` David Kastrup
2010-09-16  0:44                         ` Steven Rostedt
2010-09-16 15:27                           ` Nivedita Singhvi
2010-09-16 17:30                             ` Steven Rostedt
2010-09-16 19:27                               ` Armin Steinhoff
2010-09-16 19:38                                 ` Steven Rostedt
2010-09-15 13:33             ` Thomas Gleixner
2010-09-14 14:44         ` Pradyumna Sampath
2010-09-15 12:48           ` Sergio Ruocco
2010-09-15 12:53             ` Pradyumna Sampath
2010-09-15 14:58             ` Paul E. McKenney
2010-09-15 16:27             ` Sven-Thorsten Dietrich
2010-09-16  0:49               ` Steven Rostedt
2010-09-16  5:06                 ` David Kastrup
2010-09-14 14:56         ` Armin Steinhoff
2010-09-14 15:42         ` Patrice Kadionik
2010-09-14 17:38         ` Gregory Haskins
2010-09-14 22:09           ` Nivedita Singhvi
2010-09-15  6:22             ` Patrice Kadionik [this message]
     [not found]               ` <4C90CF71.2050205@us.ibm.com>
2010-09-15 13:56                 ` Patrice Kadionik
2010-09-15 14:08               ` Steven Rostedt
2010-09-14 10:06   ` Klaas van Gend
2010-09-14 11:00     ` David Kastrup
2010-09-14  9:28 ` Pradyumna Sampath
2010-09-14 14:13 ` Reagan Thomas
2010-09-15  7:09   ` AW: " Lukas Redlinger
2010-09-15  3:38 ` jordan
2010-09-15  8:59   ` Klaas van Gend
2010-09-15 11:03     ` TinxCore and PREEMPT_RT Armin Steinhoff
2010-09-16  9:38       ` Armin Steinhoff
2010-09-16 10:18         ` David Kastrup
2010-09-16 11:25           ` Mike Galbraith
2010-09-16 11:51           ` Armin Steinhoff
2010-09-15 14:03     ` preempt rt in commercial use Nivedita Singhvi
2010-09-15 17:29       ` Reagan Thomas
2010-09-16 10:39         ` Daniel James
2010-09-16 20:47           ` jordan
2010-09-16 10:07   ` Daniel James
2010-09-16 20:37     ` jordan

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=4C906608.8080906@enseirb-matmeca.fr \
    --to=kadionik@enseirb-matmeca.fr \
    --cc=linux-rt-users@vger.kernel.org \
    /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).