Linux - KernelThis forum is for all discussion relating to the Linux kernel.
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
the target hardware platform has limited horsepower, and/or you want the real-time job to put the smallest possible overhead on your system. This is where dual kernels are usually better than a native preemption system.
People have the mistaken belief that RT means faster. In fact, the opposite is true. RT simply means that responses are within a designated timeframe, and have a low jitter (variance in service time). Accomplishing that comes at the cost of throughput because work has to be stopped to meet the required timeframe; an RT system accomplishes less productive work than a non-RT system.
In preempt_rt they say that whole kernel is preempted. What does that mean?
In what way is that different from Xenomai in terms of load bearing?
Preempt_rt means that the kernel will interrupt an executing kernel task and stop dispatching work in order to meet a real-time deadline. Xenomai, from the description, is a realtime process, so it's just one of the hundreds of (mostly) non-real-time processes running on the system. Without preempt_rt the system will not interrupt its own work; it's softer real-time. As a result, there will be greater variability in the service time for processes (like Xenomai). That's the difference in load.
If your workload requires hard real-time (all deadlines need to be met), you need preempt_rt. If soft real-time is acceptable (some deadline misses OK), then Xenomai appears to perform that function. If you don't understand the differences, odds are you don't need real-time at all.
Xenomai is a real-time development framework cooperating with the Linux kernel, in order to provide a pervasive, interface-agnostic, hard real-time support to user-space applications, seamlessly integrated into the GNU/Linux environment
preempt_rt is bound to cause a reduction in the overall throughput of the system since there will be several context switches and also the lower priority tasks won't be getting much a chance to get through.
Load in this context refers to the work being performed by the kernel. While work performed by the kernel is in support of processes running on the system, it's not productive work; it's overhead. preempt_rt increases the amount of work the kernel must perform.