Comments on Montavista's "Open Source Real-Time Linux Project"?

Jan Kiszka kiszka at rts.uni-hannover.de
Mon Oct 11 12:48:40 CEST 2004


Herman Bruyninckx wrote:
> Montavista launched their single-kernel realtime Linux project:
>  <http://source.mvista.com/linux_2_6_RT.html>
>  <ftp://source.mvista.com/pub/realtime/rttReleaseNotes>
> 
> Does somebody have enough insight to list the differences in approach and
> performance between Montavista's suggestion and RTAI?
> 

I don't claim to have analysed the Montavista approach in every detail, 
but from the first view it appears to be yet another soft real-time 
kernel hack, sorry, patch promoted as hard real-time. As an excuse for 
this confusion, one may consider that Montavista is competing with 
proprietary and Linux-based commercial solutions also claiming to be 
hard real-time but targeting different applications (many customers want 
it but doesn't really need it).

Two arguments I immediately had in mind while scanning the patches:

  o Replacing the kernel spinlock (_irqsave/_irqrestore) with mutexes do
    actually improve the interrupt responsiveness, but it doesn't help
    you when your code directly or (the kernel is complex) indirectly
    depends  on some critical section. Furthermore, as Karim already
    pointed out on the kernel thread, you have to audit every damn
    driver you want to use in your real-time Linux system, and it doesn't
    matter if only a subset of these drivers are really used for
    real-time purposes. BTW, real-time drivers and their programming
    model is a topic of it own.

  o So far, and there is also no announcement for plans on this, the
    patches do not deal with hard-rt resource management or reservation.
    Imagine a real-time task calling a kernel function which requires to
    allocate some piece of memory (kmalloc etc., heavily used by IPC
    mechanisms e.g.). Normally, the pool of free memory blocks is more or
    less filled, but sometimes... q.e.d., it's soft real-time.

You can solve these issues (+ the ones they already list, like rwlocks), 
of course. But the patch is already 300 kB heavy - for a single 
architecture.

And finally, the big common question remains foggy here as well: What am 
I allowed to call without losing real-time guarantees?

Jan




More information about the Rtai mailing list