Bug#245398: BUG# 6419, via-rhine II could be the problem
Well, the via-rhine network driver is maintained (according to
MAINTAINERS file in 2.6.18) by,
VIA RHINE NETWORK DRIVER
P: Roger Luethi
M: rl@hellgate.ch
S: Maintained
So I'm CC'ing him on this.
With debug=4, I get
Dec 15 20:50:01 mira last message repeated 125 times
Dec 15 20:50:01 mira kernel: eth0: exiting interrupt, status=00000002.
Dec 15 20:50:01 mira kernel: eth0: exiting interrupt, status=00000000.
Dec 15 20:50:05 mira last message repeated 1517 times
Dec 15 20:50:05 mira kernel: NETDEV WATCHDOG: eth0: transmit timed out
Dec 15 20:50:05 mira kernel: eth0: Transmit timed out, status 0000, PHY
status 786d, resetting...
Dec 15 20:50:05 mira kernel: eth0: Reset succeeded.
Dec 15 20:50:05 mira kernel: eth0: link up, 100Mbps, full-duplex, lpa 0x45E1
Dec 15 20:50:05 mira kernel: eth0: force_media 0, carrier 1
Dec 15 20:50:05 mira kernel: eth0: exiting interrupt, status=00000000.
Dec 15 20:50:06 mira last message repeated 3399 times
Dec 15 20:50:06 mira kernel: eth0: exiting interrupt, status=00000001.
Dec 15 20:50:06 mira kernel: eth0: exiting interrupt, status=00000000.
With debug=7, well, there is sooo much logging generated I can only get
3MB/s over scp. It took some time for the error to occur, but still got it,
Dec 15 21:15:46 mira kernel: eth0: exiting interrupt, status=00000000.
Dec 15 21:15:46 mira kernel: eth0: Transmit frame #292948 queued in slot 4.
Dec 15 21:15:46 mira kernel: eth0: Transmit frame #292949 queued in slot 5.
Dec 15 21:15:46 mira kernel: eth0: Transmit frame #292950 queued in slot 6.
Dec 15 21:15:46 mira kernel: eth0: Transmit frame #292951 queued in slot 7.
Dec 15 21:15:46 mira kernel: eth0: Transmit frame #292952 queued in slot 8.
Dec 15 21:15:46 mira kernel: eth0: Interrupt, status 00000002.
Dec 15 21:15:46 mira kernel: Tx scavenge 15 status 00000000.
Dec 15 21:15:46 mira kernel: collisions: 0:0
Dec 15 21:15:46 mira kernel: Tx scavenge 0 status 80000000.
Dec 15 21:15:46 mira kernel: eth0: exiting interrupt, status=00000000.
Dec 15 21:15:46 mira kernel: eth0: Interrupt, status 00000001.
Dec 15 21:15:46 mira kernel: eth0: exiting interrupt, status=00000000.
Dec 15 21:15:46 mira kernel: eth0: rhine_rx(), entry 43 status 00468f00.
Dec 15 21:15:46 mira kernel: rhine_rx() status is 00468f00.
Dec 15 21:15:46 mira kernel: eth0: Interrupt, status 00000001.
Dec 15 21:15:46 mira kernel: eth0: exiting interrupt, status=00000000.
Dec 15 21:15:46 mira kernel: eth0: rhine_rx(), entry 44 status 00768f00.
Dec 15 21:15:46 mira kernel: rhine_rx() status is 00768f00.
Dec 15 21:15:46 mira kernel: eth0: Interrupt, status 00000002.
Dec 15 21:15:46 mira kernel: Tx scavenge 0 status 00000000.
Dec 15 21:15:46 mira kernel: collisions: 0:0
Dec 15 21:15:46 mira kernel: Tx scavenge 1 status 80000000.
Dec 15 21:15:46 mira kernel: eth0: exiting interrupt, status=00000000.
Dec 15 21:15:46 mira kernel: eth0: Interrupt, status 00000002.
Dec 15 21:15:46 mira kernel: Tx scavenge 1 status 00000000.
Dec 15 21:15:46 mira kernel: collisions: 0:0
Dec 15 21:15:46 mira kernel: Tx scavenge 2 status 80000000.
Dec 15 21:15:46 mira kernel: eth0: exiting interrupt, status=00000000.
Dec 15 21:15:46 mira kernel: eth0: Interrupt, status 00000001.
Dec 15 21:15:46 mira kernel: eth0: exiting interrupt, status=00000000.
Dec 15 21:15:46 mira kernel: eth0: rhine_rx(), entry 45 status 00468f00.
Dec 15 21:15:46 mira kernel: rhine_rx() status is 00468f00.
Dec 15 21:15:46 mira kernel: eth0: Interrupt, status 00000002.
Dec 15 21:15:46 mira kernel: Tx scavenge 2 status 00000000.
Dec 15 21:15:46 mira kernel: collisions: 0:0
Dec 15 21:15:46 mira kernel: Tx scavenge 3 status 80000000.
Dec 15 21:15:46 mira kernel: eth0: exiting interrupt, status=00000000.
Dec 15 21:15:46 mira kernel: eth0: Interrupt, status 00000002.
Dec 15 21:15:46 mira kernel: Tx scavenge 3 status 00000000.
Dec 15 21:15:46 mira kernel: collisions: 0:0
Dec 15 21:15:46 mira kernel: Tx scavenge 4 status 80000000.
Dec 15 21:15:46 mira kernel: eth0: exiting interrupt, status=00000000.
Dec 15 21:15:46 mira kernel: eth0: Transmit frame #292953 queued in slot 9.
Dec 15 21:15:46 mira kernel: eth0: Transmit frame #292954 queued in slot 10.
Dec 15 21:15:46 mira kernel: eth0: Transmit frame #292955 queued in slot 11.
Dec 15 21:15:46 mira kernel: eth0: Transmit frame #292956 queued in slot 12.
Dec 15 21:15:46 mira kernel: eth0: Transmit frame #292957 queued in slot 13.
Dec 15 21:15:46 mira kernel: eth0: Interrupt, status 00000001.
Dec 15 21:15:46 mira kernel: eth0: exiting interrupt, status=00000000.
Dec 15 21:15:46 mira kernel: eth0: rhine_rx(), entry 46 status 00468f00.
Dec 15 21:15:46 mira kernel: rhine_rx() status is 00468f00.
Dec 15 21:15:46 mira kernel: eth0: Interrupt, status 00000002.
Dec 15 21:15:46 mira kernel: Tx scavenge 4 status 00000000.
Dec 15 21:15:46 mira kernel: collisions: 0:0
Dec 15 21:15:46 mira kernel: Tx scavenge 5 status 80000000.
Dec 15 21:15:46 mira kernel: eth0: Interrupt, status 00000002.
Dec 15 21:15:46 mira kernel: Tx scavenge 5 status 00000000.
Dec 15 21:15:46 mira kernel: collisions: 0:0
Dec 15 21:15:46 mira kernel: Tx scavenge 6 status 80000000.
Dec 15 21:15:46 mira kernel: eth0: exiting interrupt, status=00000000.
Dec 15 21:15:46 mira kernel: eth0: Interrupt, status 00000001.
Dec 15 21:15:46 mira kernel: eth0: exiting interrupt, status=00000000.
Dec 15 21:15:46 mira kernel: eth0: rhine_rx(), entry 47 status 00468f00.
Dec 15 21:15:46 mira kernel: rhine_rx() status is 00468f00.
Dec 15 21:15:46 mira kernel: eth0: Interrupt, status 00000001.
Dec 15 21:15:46 mira kernel: eth0: exiting interrupt, status=00000000.
Dec 15 21:15:46 mira kernel: eth0: rhine_rx(), entry 48 status 00468f00.
Dec 15 21:15:46 mira kernel: rhine_rx() status is 00468f00.
Dec 15 21:15:46 mira kernel: eth0: Interrupt, status 00000001.
Dec 15 21:15:46 mira kernel: eth0: exiting interrupt, status=00000000.
Dec 15 21:15:46 mira kernel: eth0: rhine_rx(), entry 49 status 00768f00.
Dec 15 21:15:46 mira kernel: rhine_rx() status is 00768f00.
Dec 15 21:15:46 mira kernel: eth0: Interrupt, status 00000001.
Dec 15 21:15:46 mira kernel: eth0: exiting interrupt, status=00000000.
Dec 15 21:15:46 mira kernel: eth0: rhine_rx(), entry 50 status 00768f00.
Dec 15 21:15:46 mira kernel: rhine_rx() status is 00768f00.
Dec 15 21:15:47 mira kernel: eth0: Interrupt, status 00000001.
Dec 15 21:15:47 mira kernel: eth0: exiting interrupt, status=00000000.
Dec 15 21:15:47 mira kernel: eth0: rhine_rx(), entry 51 status 00768f00.
Dec 15 21:15:47 mira kernel: rhine_rx() status is 00768f00.
Dec 15 21:15:49 mira kernel: eth0: Interrupt, status 00000001.
Dec 15 21:15:49 mira kernel: eth0: exiting interrupt, status=00000000.
Dec 15 21:15:49 mira kernel: eth0: rhine_rx(), entry 52 status 00768f00.
Dec 15 21:15:49 mira kernel: rhine_rx() status is 00768f00.
Dec 15 21:15:49 mira kernel: NETDEV WATCHDOG: eth0: transmit timed out
Dec 15 21:15:49 mira kernel: eth0: Transmit timed out, status 0000, PHY
status 786d, resetting...
Dec 15 21:15:49 mira kernel: eth0: Reset succeeded.
Dec 15 21:15:49 mira kernel: eth0: link up, 100Mbps, full-duplex, lpa 0x45E1
Dec 15 21:15:49 mira kernel: eth0: force_media 0, carrier 1
Dec 15 21:15:49 mira kernel: eth0: Transmit frame #0 queued in slot 0.
Dec 15 21:15:49 mira kernel: eth0: Transmit frame #1 queued in slot 1.
Dec 15 21:15:49 mira kernel: eth0: Transmit frame #2 queued in slot 2.
Dec 15 21:15:49 mira kernel: eth0: Transmit frame #3 queued in slot 3.
Dec 15 21:15:49 mira kernel: eth0: Transmit frame #4 queued in slot 4.
Dec 15 21:15:49 mira kernel: eth0: Transmit frame #5 queued in slot 5.
Dec 15 21:15:49 mira kernel: eth0: Transmit frame #6 queued in slot 6.
Dec 15 21:15:49 mira kernel: eth0: Transmit frame #7 queued in slot 7.
Dec 15 21:15:49 mira kernel: eth0: Transmit frame #8 queued in slot 8.
Dec 15 21:15:49 mira kernel: eth0: Transmit frame #9 queued in slot 9.
The second problem occurs in a similar way,
Dec 15 21:20:24 mira kernel: rhine_rx() status is 00768f00.
Dec 15 21:20:24 mira kernel: eth0: Interrupt, status 00000001.
Dec 15 21:20:24 mira kernel: eth0: exiting interrupt, status=00000000.
Dec 15 21:20:24 mira kernel: eth0: rhine_rx(), entry 9 status 0072a700.
Dec 15 21:20:24 mira kernel: rhine_rx() status is 0072a700.
Dec 15 21:20:25 mira kernel: NETDEV WATCHDOG: eth0: transmit timed out
Dec 15 21:20:25 mira kernel: eth0: Transmit timed out, status 0000, PHY
status 786d, resetting...
Dec 15 21:20:25 mira kernel: eth0: Reset succeeded.
Dec 15 21:20:25 mira kernel: eth0: link up, 100Mbps, full-duplex, lpa 0x45E1
Dec 15 21:20:25 mira kernel: eth0: force_media 0, carrier 1
Dec 15 21:20:25 mira kernel: eth0: Transmit frame #0 queued in slot 0.
Dec 15 21:20:25 mira kernel: eth0: Transmit frame #1 queued in slot 1.
Dec 15 21:20:25 mira kernel: eth0: Transmit frame #2 queued in slot 2.
Without debugging, I get a lot more resets. Now, I turned off debugging
and was doing a ftp upload. There was one reset at the beginning of the
transfer but then nothing for quite some time.
Then, I started to ping flood another box on the LAN. No effect. I think
I lost one packet eventually. FTP was still going.
Then, I tried to update (http) my Debian box at the same time as that
FTP and the ping flood and a bunch of resets occurred,
Dec 15 21:47:22 mira kernel: NETDEV WATCHDOG: eth0: transmit timed out
Dec 15 21:47:22 mira kernel: eth0: Transmit timed out, status 0000, PHY
status 786d, resetting...
Dec 15 21:47:22 mira kernel: eth0: link up, 100Mbps, full-duplex, lpa 0x45E1
Dec 15 21:53:42 mira kernel: NETDEV WATCHDOG: eth0: transmit timed out
Dec 15 21:53:42 mira kernel: eth0: Transmit timed out, status 0000, PHY
status 786d, resetting...
Dec 15 21:53:42 mira kernel: eth0: link up, 100Mbps, full-duplex, lpa 0x45E1
Dec 15 21:56:52 mira kernel: NETDEV WATCHDOG: eth0: transmit timed out
Dec 15 21:56:52 mira kernel: eth0: Transmit timed out, status 0000, PHY
status 786d, resetting...
Dec 15 21:56:52 mira kernel: eth0: link up, 100Mbps, full-duplex, lpa 0x45E1
Dec 15 21:56:56 mira kernel: NETDEV WATCHDOG: eth0: transmit timed out
Dec 15 21:56:56 mira kernel: eth0: Transmit timed out, status 0000, PHY
status 786d, resetting...
Dec 15 21:56:56 mira kernel: eth0: link up, 100Mbps, full-duplex, lpa 0x45E1
Dec 15 21:57:00 mira kernel: NETDEV WATCHDOG: eth0: transmit timed out
Dec 15 21:57:00 mira kernel: eth0: Transmit timed out, status 0000, PHY
status 786d, resetting...
Dec 15 21:57:00 mira kernel: eth0: link up, 100Mbps, full-duplex, lpa 0x45E1
Dec 15 21:57:26 mira kernel: NETDEV WATCHDOG: eth0: transmit timed out
Dec 15 21:57:26 mira kernel: eth0: Transmit timed out, status 0000, PHY
status 786d, resetting...
Dec 15 21:57:26 mira kernel: eth0: link up, 100Mbps, full-duplex, lpa 0x45E1
Dec 15 21:57:42 mira kernel: NETDEV WATCHDOG: eth0: transmit timed out
Dec 15 21:57:42 mira kernel: eth0: Transmit timed out, status 0000, PHY
status 786d, resetting...
Dec 15 21:57:42 mira kernel: eth0: link up, 100Mbps, full-duplex, lpa 0x45E1
Dec 15 21:58:32 mira kernel: NETDEV WATCHDOG: eth0: transmit timed out
Dec 15 21:58:32 mira kernel: eth0: Transmit timed out, status 0000, PHY
status 786d, resetting...
Dec 15 21:58:32 mira kernel: eth0: link up, 100Mbps, full-duplex, lpa 0x45E1
Dec 15 21:58:36 mira kernel: NETDEV WATCHDOG: eth0: transmit timed out
Dec 15 21:58:36 mira kernel: eth0: Transmit timed out, status 0000, PHY
status 786d, resetting...
Dec 15 21:58:36 mira kernel: eth0: link up, 100Mbps, full-duplex, lpa 0x45E1
Dec 15 21:59:08 mira kernel: NETDEV WATCHDOG: eth0: transmit timed out
Dec 15 21:59:08 mira kernel: eth0: Transmit timed out, status 0000, PHY
status 786d, resetting...
Dec 15 21:59:08 mira kernel: eth0: link up, 100Mbps, full-duplex, lpa 0x45E1
The hardware is,
00:12.0 Ethernet controller: VIA Technologies, Inc. VT6102 [Rhine-II]
(rev 78)
Subsystem: VIA Technologies, Inc. VT6102 [Rhine II] Embeded
Ethernet Controller on VT8235
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
Latency: 32 (750ns min, 2000ns max), Cache Line Size: 32 bytes
Interrupt: pin A routed to IRQ 177
Region 0: I/O ports at c400 [size=256]
Region 1: Memory at b2001000 (32-bit, non-prefetchable) [size=256]
Capabilities: [40] Power Management version 2
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA
PME(D0+,D1+,D2+,D3hot+,D3cold+)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
On a 2.6.18-3-k7 Athlon 2000XP system. ACPI is off as otherwise I get a
huge load on software interrupts (si) on all system calls. That started
with the 2.6.17, but I guess it is another issue.
I was also messing around with the max_work_in_interrupt parameter, but
that just made things worse.
- Adam
Sergio Monteiro Basto wrote:
> My bug http://bug
zilla.kernel.org/show_bug.cgi?id=6419
>
> Today I found that my computer hang problem could be just a problem with
> via-rhine II.
>
> I got exactly the same problem describe on
> http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=245398;msg=107
>
> I had transfer by eth0 (via-rhine II), about 3500 files, about 15 Giga
> bytes and when rsync over ssh stops transfer (eth0 has got problems), I
> could press ctrl-c , abort rsync restart network , and continue the
> rsync.
> Or just restart network which remove via-rhine modules and reinsert it.
> But if I left the computer with rsync stopped after some minutes
> computer hangs.
>
> netstat -i also give me some 2 or 3 TX-ERR s
>
> Any ideas to test this ?
>
> Thanks,
Reply to: