Test of the Preemptive Kernel Patch
e8johan writes "Linux was originally written as a general-purpose operating system without any consideration for real-time applications. Recently Linux has become attractive to the real-time community due to its low cost and open standards. In order to make it more practical for the real-time community, patches have been written to affect such things as interrupt latency and context switch. These patches are public domain and are becoming part of the main Linux tree. The test results can be found here."
Can someone PLEASE explain what is meant by real-time applications? Am I supposed to assume that the apps I've been using for the last few years are fake-time applictions? If I were to guess what real-time is supposed to mean, I would guess it means 3D rendering apps or something, but since the author didn't explain it, and I don't already know, I hope someone can help me.
Is it just me, or does the title of this story sound like a Harry Potter book?
Karma: Good (despite my invention of the Karma: sig)
Stolen from the article. Most of it recaps what the average /. developer would already know, so here's the numbers to look at:
| Script | Without Patch | With Patch |
| Find script | 78.51 ms | 0.48 ms |
| Launch script | 0.61 ms | 0.41 ms |
| File move script | 0.62 ms | 0.31 ms |
As you can see and would expect, there's a sizeable improvement.
Slashdot: Where people pretend to be twice as smart as they really are by behaving like children.
real time means there is a guaranteed maximum response time. this generally hurts overall performance, but it does reign in the worst case. this is absolutely critical in some special applications, but most situations are better off without real-time.
for example. qnx is a real-time operating system. it's frequently used in embedded systems with only one communication channel. everything that wants to communicate takes its turn and the system kicks it off the line when its time is up. so it is critical that there is a guaranteed maximum response time.
If these patches are applied when they aren't really needed, how much does it impact the system's performance and stability? I read in the thread shown that it conflicts with SMP, so you'd want it turned off for installs on multiprocessor systems, but aside from that, why can't it be turned on by default?
I understand the concept of real-time and hard real-time vs. "soft" real-time, so I'm not totally ignorant. But, what I don't understand is why one would not want real-time characteristics in an OS? In other words, from my uninformed perspective, real-time design techniques always seem to improve system performance. Therefore, it looks to me like we would always want this to be part of any OS we use.
No? If not, why not?
(I guess one of my assumptions here is that real-time techniques always lead to faster systems.)
Please mod this post only if you think others should/n't read this. I have enough ego^H^H^Hkarma. Thanks!
You could look at longer term constraints like meeting payroll as a real-time constraint, but you're right, the deadlines are not really hard. Typically this type of processing falls into the 'batch' processing category which has some interesting parallels to real-time, but with a much longer time-scale. There is very little true batch processing any more, but it used to be the dominant model for most business data processing.
How did the Amiga Operating System rate on this matter? It always seemed to be very responsive even when heavily loaded down...
Please consider making an automatic monthly recurring donation to the EFF
It takes the preemptive and low-latency patches
to make the linux kernel suitable for general-
purpose use on low-powered hardware. If you want
to watch smooth mpeg decodes while running a POVRay
job and serving web pages out of a database,
it takes a top-end current box to keep you happy,
unless you have preemptive and low-latency patches
applied.
Multimedia *is* realtime, so general-purpose implies
realtime.
-I like my women like I like my tea: green-
You like splinters in your crotch? -Jon Caldara
Your definition of a real-time system is a little too loose. A payroll system is not a real-time system. Sure, the employees might get angry if the payroll is not submitted on time, but a hard real-time system has well-defined fixed time constraints, and guarantees that these critical tasks will be completed on time. A payroll system makes no guarentees.
I have to side with the original poster. Other than scale, there isn't any difference between a payroll system and something you would typically consider "real time". There are "well-defined fixed time constraints" for payroll processing (in the US often defined by state and federal laws). If you do payroll processing, you guarentee (often contractually) that you will meet the constraints.
In both cases, there are time limits expressed in terms of the outside world("real time"), and sufficient consequences if these constraints are not met to define failure to meet the constraints as system failure. The only difference is scale.
-- MarkusQ
Real time problems are problems whose definition includes dependencies on the passage of real time.
Real time systems systems that are used to solve real time problems.
Prohibiting context switches is common in real time systems, since it eliminates one potential source of failures, but it isn't essential (you can get the same results by having a much faster processor, or a pool of processors, etc.) and in any case it isn't a cure-all. If the time constraints are tight enough that your hardware can't meet them, you're still out of luck.
Claiming that payroll isn't a real time problem because you don't need a real time system that eschews context switches to solve it is the same sort of logic as claiming the earth isn't a planet because you don't need some specfic type of telescope to study its surface.
-- MarkusQ