Thursday, October 16, 2008

Hard Real-time Linux

Is it possible?

In the past, I've been told, "No.".

I've just read an article which states "With a little extra work, you can get hard real-time support with the PREEMPT_RT patch."

Dear Lazyweb, is this so?


Game_Ender said...

I don't know if would call the PREEMPT_RT patch hard real time, but its very close. Probably close enough for most real time uses. What is hard real time though is using something like Xenomai. Which provides support for numerous common real time APIs. Its mentioned in the article and it uses the "Thin-kernel" approach.

Stuart said...

It is very much possible. Take a look at the Linux RT wiki for more information and background.

But keep in mind that the RT_PREEMPT patch is not magic. You don't just boot a PREEMPT_RT kernel and bingo! your application is meeting 30 microsecond deadlines. To achieve deterministic performance, you're going to need to write your code in a way that avoids known determinism killers (see the RT wiki for a checklist). You will also need to ensure the system and hardware are not working against you by tuning the OS. For example correctly prioritizing IRQ threads and using CPU sets to segregate realtime vs normal workloads.

These are issues that pertain to any realtime system, and are not exclusive to PREEMPT_RT Linux. However other RT systems may have different defaults or ways to tune that make it easier to do RT work out-of-the-box.

Anonymous said...

Go have a look at Xenomai

Popular Posts