The other day I was doing a lot of messing about with hubs (my brother wanted a lan party :rooleyes:)
Ever since then, I noticed internet access was extremely laggy - maybe 5 or 10 seconds to request a web page for example, although once a connection was established everything went at normal speed (we're on 600k cable).
Also, access to the linux router machine itself was terrible - remote console access through SSH was an interesting experience to say the least.
The setup on the machine is that eth0 is the internal network, and eth1 is connected to the cable modem.
The machine is not just a router - it also provides some firewall services, some proxy services, and is a DHCP server. I doubt these factors have anything to do with it, but you never know.
Until today, I hadn't had time to look into it to see what the problem was. I got around to investigating the kernel log, and found this:
Jul 13 22:39:43 harlequin kernel: eth0: Setting half-duplex based on MII #32 link partner ability of 0000.
Jul 13 22:39:49 harlequin dhcpd: DHCPREQUEST for 192.168.0.10 from 00:c0:49:b3:6c:c0 via eth0
Jul 13 22:39:49 harlequin dhcpd: DHCPACK on 192.168.0.10 to 00:c0:49:b3:6c:c0 via eth0
Jul 13 23:01:43 harlequin kernel: eth0: RTL8139 Interrupt line blocked, status 1.
Jul 13 23:15:43 harlequin kernel: eth0: RTL8139 Interrupt line blocked, status 1.
Jul 13 23:22:43 harlequin kernel: eth0: RTL8139 Interrupt line blocked, status 1.
Jul 13 23:23:43 harlequin kernel: eth0: RTL8139 Interrupt line blocked, status 5.
Jul 13 23:24:43 harlequin kernel: eth0: RTL8139 Interrupt line blocked, status 4.
..and so on, right up to today.
The date/time of the first line was when we were first fiddling with the hubs. Note that for some reason the connection got dropped down to half duplex.
After that, the log is FILLED with the "Interrupt line blocked, status <x>" messages (I mean literally hundreds, from jul 13th until today). There are also some which look like this:
Jul 14 14:35:43 harlequin kernel: eth0: SMP simultaneous entry of an interrupt handler.
And then yet more, that look like this:
Jul 18 11:36:35 harlequin kernel: eth0: Transmit timeout, status 0d 0004 media 00.
Jul 18 11:36:35 harlequin kernel: eth0: Tx queue start entry 1032643 dirty entry 1032639.
Initially, the port on the hub to which the router machine was connected to was accidentally set to be an uplink port because thats how the hub was in use before it was brought here.
Anyway, I have a few questions:
Could the port being set to uplink cause the drop to half duplex?
If it wasn't the port, what else could it have been (the hub supports full duplex)?
What exactly ARE these errors? I'm guessing the first example is something to do with the IRQ, but I have no idea about the others.
Why, given that the hub in question has since been disconnected (days ago, in fact) and all the clients have been restarted several times (and so renewed their DHCP leases), did the machine not bring the connection back up to full duplex mode?
Is there any way other than a restart of the machine (which I've just done) to fix the problem if it happens again?
Ta.