Hi everybody,

I have tried the latest 2.6.21 kernel + Ingo Molnar's realtime preempt patch
(see: http://rt.wiki.kernel.org/index.php/RT_PREEMPT_HOWTO)

And I am really amazed about the results.
On my Pentium 4D (dual core) system, 3.2 GHz, I ran the cyclictest
application (which is something similar to the "latency" application of 
Xenomai/RTAI)
and I get values below 15 microseconds on my PC (for a single task running with 
200 microseconds).

Using kernel 2.6.20.4 + Xenomai 2.3.1 I get similar results for the latency 
application.

That means, that Ingo Molnar has done a real cool job in moving standard linux 
in the direction
of a real time OS.

However, one thing is not as fine as with Xenomai/rtnet:
I want to do real time UDP communication from a user space application.
Unfortunately, I was not  able to do that as fast as with the Xenomai/rtnet way.
My application does a kind of "ping-pong" with an embedded device that is 
connected as only
device to eth1 (Intel e1000 adapter).
Using Xenomai/rtnet I get request/response times at about 200 microseconds.

When I run an adapted application on the kernel with the preempt patch using 
the standard
linux UDP socket functions (sendto, recv), I get request/response times around 
1 millisecond.
I have now the assumption that the TCP/IP stack that uses some internal tasks 
is not running with
real time priority. However, I have no idea how to move that code to real time 
priority or if it makes
sense to move it as it is probably not possible to handle only communication 
via a certain ethernet adapter 
with real time priority and all other stuff (house keeping via TCP, different 
Ethernet adapter) 
with standard priority.
Has anybody an idea about the internal behaviour of this or how to continue 
here?

Another approach could be to use a modified version of rtnet on base of the 
preempt patched kernel.
This could allow to use the preempt patch kernel as base for all threads, and 
the rtnet is used
for real time Ethernet communication...
Is something like this possible or this there a major error in the approach?

Currently, my application is working quite nice using Xenomai/rtnet however 
there are some
drawbacks like the issue with limited IRQs: Sharing of IRQs between 
Ethernet-Drivers of rtnet
and non-realtime drivers is not possible (at least I did not manage that...).
A smooth usage of real time features from a "standard" kernel could help here!

Thanks for all feedback on this comment!

Regards

Mathias

-- 
Mathias Koehrer
[EMAIL PROTECTED]


50€ AMAZON-Einkaufsgutschein bei Bestellung von Arcor-DSL:
Viel oder wenig? Schnell oder langsam? Unbegrenzt surfen + telefonieren
ohne Zeit- und Volumenbegrenzung? DAS TOP ANGEBOT JETZT bei Arcor: günstig
und schnell mit DSL - das All-Inclusive-Paket für clevere Doppel-Sparer,
nur  39,85 €  inkl. DSL- und ISDN-Grundgebühr!
http://www.arcor.de/rd/emf-dsl-2

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
RTnet-users mailing list
RTnet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rtnet-users

Reply via email to