Intel energizes decades-old real-time Linux kernel project
theregister.com
theregister.com
I used the RT_PREEMPT patches in 2012/13, so my insight is most certainly rusty, dated and might even be wrong here or there. But still:
First of all, RT_PREEMPT is about realtime as in "hard realtime" for control systems. This has nothing to do with "small latency" (the cycle time could be minutes), but with deadline guarantees, allowing control loops over (realtime) network protocols, etc.
Then, almost all important additions of the RT_PREEMPT patches were mainlined one after the other. The last bits were never mainlined although essential for full preemptive kernel AFAIR, but:
Most "modern" (>15 years) OTS-platform (x86, x86-64) is increasingly unfit for realtime - no matter what kernel/OS you use, because your CPU is not in control. Beginning with DMA, later also "management engines", modern platforms might dethrone your CPU on the lowest ring entirely and for as long as they want, to serve a request/interrupt, e.g. fan control, while your CPU wakes up 500ms later realizing that it missed quite a few deadlines. (Fan control is a bad example, but DMA is not. Also Intel ME!) This makes almost all Linux PCs inherently unable to reliably keep these guarantees.
This puts the whole "hard realtime on Linux"-project in a pickle - since it requires full control over the platform. And most shops that go this route, will take the small additional step of using something well tested and with vendor support.
And the rest buys platform and OS with support from a trusted vendor.
Personally the newest X86 I’ve seen in this type of stuff was an 80286; everything newer has been POWER or SPARC of one flavor or another, typically running VXWORKS. I haven’t by any means seen everything though.
However in many applications (e.g. robotics) where missing a single deadline will not result in loss of life it works perfectly fine.
The unmaskable interrupts on x86 can be a problem but long terms benchmarking can help with possible edge cases.
Other Linux-based solutions such as Xenomai & RTAI which provide even better performance deserve a mention.
Intel is on my list, alongside Google, under the category of "companies that do one great thing, everything else is a disposable experiment that is probably already cancelled".
Proceed at your own peril with the Linutronix stuff.
I wonder about the BOM cost of Intel vs arm though, in € per "performance"? Or what else is the root cause of Intel not getting a foothold in bedded?
TLDR: Intel had a foothold in embedded/realtime operating systems and let it go.
Wanna talk about XScale? Intel had an ARM license and then decided, out of the blue, to sell the product line off.
TLDR: Intel had a foothold in low-power ARM platforms and let it go.
I never went near an Edison board so I don't even address that one. And now they're doing RISC-V. Don't go near it.
So, your question is "what is the root cause of Intel not getting a foothold in (em)bedded"? The answer is Intel itself.
Yes, I know they contribute to LF and whatnot. The point is that staking your embedded development pipeline on Intel itself is something I would never do (again). And I worked with Zephyr post-Intel, it wasn't a great system. I hope it's improved since then.
Perfectly summarizes the sibling commenta on ever ongoing divestments from embedded opportunities.
Of course, that still means one would be wary of betting on them in areas that aren't already well established…
I was working for a different CPU company at the time but the thought was by doing this it would allow Intel to focus on the sales and marketing of the Atom and push x86 everywhere rather than have a mixed x86 / ARM marketing message.
https://en.wikipedia.org/wiki/XScale
On June 27, 2006, the sale of Intel's XScale PXA mobile processor assets was announced. Intel agreed to sell the XScale PXA business to Marvell Technology Group for an estimated $600 million in cash and the assumption of unspecified liabilities. The move was intended to permit Intel to focus its resources on its core x86 and server businesses.
And that's where Intel continually loses out on markets because the x86 cash firehose is too good.
The XScale sale gained them $600MM, but what did they lose by being shut out of the mobile processor market for the next decade onward?
There are 2 billion iPhones on the planet somewhere and not a single one has an Intel application processor.
*(Intel's Management Engine is still around, running....Minix. https://www.youtube.com/watch?v=iffTJ1vPCSo)
[0] http://ck-hack.blogspot.com/2021/08/514-and-future-of-muqss-...
(beyond basic game compatibily etc)
Nothing was merged, and last time I tried the nvidia driver didn't work with his scheduler. It's a shame, because BFS was the snappiest desktop experience I've had on Linux.
I remember quite a few small utilities and sites I've seen over the years were written by anesthesiologists, not career software developers. I wonder why.
I turned BSD 4.3 unix into RT on a VAX 780 by using an external KW-11P clock on highest priority interrupt, have the RT code run in the kernel, and otherwise, timesharing was still going while we were running the robot -- although it was pretty sloooow. There was a big memory pool in kernel space that stored robot variables, so when the robot fell over, we would press a button which would 'freeze' the circular buffer, and then the user-space code would do an ioctl() to receive a copy of that memory pool (it was too hard to share the same pool between kernel / user space -- or maybe I was too lazy, and the solution found was 'good enough' ;-) )
You can see this in action here: https://youtu.be/mG_ZKXo6Rlg?t=34 yes, I'm sitting 'driving' the bot.
When you have a hammer (Linux) in your hand, every problem looks like a nail.
seL4 can do hard realtime, with formal proofs of worst case.
Linux can't, and won't ever be able to, due to its complexity (Millions of LoCs).
it is available from the mirrors. Currently also available from CentOS.
last time i checked, it would not load the NVIDIA driver. YMMV.
if you are in the < 120hz range, then it will probably work fine for most non safety critical times.
Soft realtime, yes. It does keep scheduling latency under control, enabling e.g. pro audio with low latency (very small buffer). This is unlike without PREEMPT_RT, where with buffers under 20ms XRUNs happen frequently.
Hard realtime, no. It can't guarantee a thing, as the kernel is complicated (has millions of lines of code) and thus unpredictable.
Look at seL4 instead if your deadlines are hard. It has been designed for realtime, and comes with formal proofs of worst case execution time.