[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: