[prev in list] [next in list] [prev in thread] [next in thread] 

List:       linux-rt
Subject:    Re: [rtl] Timing from the sheduler
From:       Paul Koning <pkoning () xedia ! com>
Date:       1999-01-21 22:01:32
[Download RAW message or body]

>>>>> "Bernhard" == Bernhard Kuhn <kuhn@batian.lpr.e-technik.tu-muenchen.de> writes:

 Bernhard> Wright, Robert B. wrote:
 >> i didn't realize that SCSI interfaces posed a problem.  what kind
 >> of latencies are expected with ethernet and scsi?

 Bernhard> Ethernet: collisions (causes retransmission) and
 Bernhard> transmission errors may occur.  SCSI: seeking may be
 Bernhard> extended by mechanical vibrations or read errors (causes
 Bernhard> re-read) may occur.

 Bernhard> Ok, you may give a definit Worst-Case-Timing for the cases
 Bernhard> described above, but theses timings are >10 times higher
 Bernhard> than the likely timings.  Consequence: the system will be
 Bernhard> much too oversized -> costs increasing.

If your network load is known to be moderate, the 99.99% (pick the
number of 9's you want) timing bound may be perfectly acceptable.  It
depends a whole lot on what your time limits are!

 Bernhard> So people usualy take the likely timings a get in account
 Bernhard> that sometimes deadlines are missed ... (missing data
 Bernhard> frames etc. = soft-RT) Mostly, the incoming/outgoing
 Bernhard> data-rate is much lower than the HD-transferrate, so that
 Bernhard> an hard-RT awareness of harddisks is not necessary (Data
 Bernhard> buffered in memory).

 Bernhard> If you wish to have a better RT-aware
 Bernhard> ethernet-communication, then use point-to-point full-duplex
 Bernhard> connections with directly programming the ethernet-chip. I
 Bernhard> took a look into the (standard)Linux source-code for
 Bernhard> ethernet low-level drivers: it should not be too much
 Bernhard> effort to convert them to RT-Linux drivers.  (So ethernet
 Bernhard> is used on ISO-OSI level 2 instead of ISO-OSI level 4 with
 Bernhard> TCP/IP)

Any kind of point to point full duplex channel eliminates the issue of 
access delay.  Ethernet is certainly a good example.

However, ALL communication channels have non-zero bit error rates, so
you always have a chance (normally very low) of losing a packet.
Almost certainly that will break your real time assumptions.

I think the right way to handle that is to analyze the bit error rate, 
compute from that the packet loss rate, and see if missing your real
time bound that often is acceptable.  

If it isn't, then run multiple channels in parallel, transmit the same 
packet on all of them, and process the first one you receive.  (You'll 
have to be careful with the protocol design here -- good use of
sequence numbers and things like that.)  That will give you
arbitrarily tight bounds.

By the way, running TCP is probably not useful (since retransmission
would be bad for timing) but IP/UDP may certainly be beneficial.  The
overhead is small so you might consider if it adds value for your
case.

	paul
--- [rtl] ---
To unsubscribe:
echo "unsubscribe rtl" | mail majordomo@rtlinux.cs.nmt.edu OR
echo "unsubscribe rtl <Your_email>" | mail majordomo@rtlinux.cs.nmt.edu
----
For more information on Real-Time Linux see:
http://www.rtlinux.org/~rtlinux/

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic