All of lore.kernel.org
 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 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.