> Please let me know if you experience any problems, so I can
> update the driver...

Ok, thank you. I *do* experience problems, hence here is a report 
as complete as possible.


I have tried to use one of my 8169 interfaces as a capture 
interface on a 100Mbps network, for testing, with rtnet capture.
Only one of my 8169 interfaces is activated in rtnet.conf 
(RT_DRIVER_OPTIONS="cards=1,0,0,0").


After starting rtnet capture, the console periodically outputs a 
lot of times (15 to 30 times) the following line:
r8169: rtl8169_rx_interrupt: Allocate n_skb failed! 
(priv->rx_buf_size = 1536)
...
followed by:
r8169: Leaving Interrupt Unhandled


When capturing packets (e.g. starting tethereal -i rteth0), it 
captures a few packets, then nothing for 30 seconds, then 
capture a few packets again, then nothing for 30 seconds, etc.
(although there are constantly many broadcast packets sent on 
this network)

I also see sometimes the line:
rteth0: Too much work at interrupt!


In addition, the RT driver seems to block the interrupts of 
another ethernet interface, that is non-realtime and that is 
managed by the standard Linux 3Com 3c905 driver. I get 
periodically messages on the console from that driver, such as:
NETDEV WATCHDOG: eth2: transmit timed out
eth2: transmit timed out, tx_status 00 status e681.
  diagnostics: net 0ccc media 8880 dma 0000003a fifo 8000
eth2: Interrupt posted but not delivered -- IRQ blocked by 
another device?
  flags: bus-master 1, dirty 5419(11) current 5419(11)
  Transmit list 00000000 vs. f719f8e0
  0: @f719f200 length 8000002a status 0001002a
  1: @f719f2a0 length 8000002a status 0001002a
(etc. 16 lines like those)

(in fact, I have 3 interfaces on that PC: eth2 is a 3Com 3C905, 
and rteth0 and rteth1 are 8169-based interfaces)

And effectively, the traffic on the non-RT interface is stopped: 
if I had opened a ssh connection, it becomes no more responsive 
once I have started rtnet and rtcap.
If I stop rtnet, i.e. if I put the RT interface down (no need to 
unload the RT driver module), it depends on the state of RTAI:

- if RTAI becomes completely broken (i.e. /proc/rtai/sched says: 
"Cannot allocate memory"), then unloading rtnet is not 
sufficient: the non-RT network card interrupts are still 
blocked, and I need to rmmod and insmod the rt_rtdm module again 
to unblock the non-RT interface, and recover a 
normal /proc/rtai/sched output.

- if RTAI is still not completely broken, it is sufficient to 
stop rtnet.



Just after starting rtnet capture, here is the content of 
my /proc/rtai/sched:
CPU  PID    PRI  TIMEOUT  STAT       NAME
  0  0      0    0        R          ROOT
  0  0      98   0        W          f8b5b9c0
  0  0      1    0        W          f8b5c120

But after a while, the content of /proc/rtai/sched becomes:
/proc/rtai/sched: Cannot allocate memory

(the only way to solve this is to rmmod rtai_rtdm module, and 
insmod again)


My RT interface and my non-RT interface share the same IRQ 16.
Cf the content of /proc/rtai/irq:
IRQ         CPU0
 16:          56
216:           1
and the content of /proc/interrupts:
           CPU0
  0:    2751710    IO-APIC-edge  timer, rthal_broadcast_timer
  1:       3784    IO-APIC-edge  i8042
  7:          0    IO-APIC-edge  parport0
  8:          1    IO-APIC-edge  rtc
  9:          1   IO-APIC-level  acpi
 14:       6025    IO-APIC-edge  ide0
 15:         26    IO-APIC-edge  ide1
 16:      18795   IO-APIC-level  eth2
 17:          0   IO-APIC-level  uhci_hcd:usb1
 18:          0   IO-APIC-level  Intel ICH2
 19:          0   IO-APIC-level  uhci_hcd:usb2
NMI:          0
LOC:    2751621
ERR:          0
MIS:          0



So, as a conclusion: the good news is that the driver is somewhat 
working (I can capture some packets with it...), but 1) 
interrupt handling seems to be broken, and 2) there seems to be 
a memory leak in RTAI/RTDM or in RTnet.
Probably those two bugs are related.

-- 
Romain Lenglet


-------------------------------------------------------
This SF.Net email is sponsored by:
Power Architecture Resource Center: Free content, downloads, discussions,
and more. http://solutions.newsforge.com/ibmarch.tmpl
_______________________________________________
RTnet-users mailing list
RTnet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rtnet-users

Reply via email to