I have a home made intelligent, Z80 based intelligent I/O card.
In the test configuration Z80 asks an interrupt
from the main 486DX4 in every 5 ms. In the PC a short
interrupt routine increments a counter only and sends
an acknowledge to the Z80.
Z80 maintains some statistical counters as number of IT
requests and number of acks.
A periodic task on the PC reads these counters in every
second and display them.
I can see, that a lot of interrups remains undetected by 486.
I lost 0-20 IRQs within a 10 s interval. The actual number
depends on the rate of IT requests, the IRQ pulse length
(tipically 3+ microsec) and the IRQ number.
AT this moment the IRQ pulse length is almost 5 ms(!),
the Z80 uses IRQ2(=IRQ9) which has the highest availale
priority.
Finally I found, that the Ethernet card (on IRQ10) causes most of
the problems. If I disconnect the cable no IT loss occurs. However
a flood ping to the target machine causes hundreds of error per second.
Decreasing IRQ pulse length to 3-12 microsec brings up the
IT loss again, even if Ethernet is disconnected. However at this moment
only the timer interrupts have higher priority than I use for tests.
My questions:
- is it possible/advised to use a network card in a real-time system?
(The expected network traffic would be low.)
- How could this problem occur? AFAIK the Linux kernel cannot _really_
disable the interupts in RT-Linux.
- What to do now? :-|
Regards
Gabor
-----
Config: 486DX4/100, RTLinux-2.1pre1B, 2.2.14 kernel.
--- [rtl] ---
To unsubscribe:
echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR
echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED]
----
For more information on Real-Time Linux see:
http://www.rtlinux.org/~rtlinux/