Oct 14, 2009

Linux network problems, eth0 stops responding

I finally found a solution for this problem on my linux server.
Since kernel 2.6.25-r7 all kernel upgrades resulted in errors, like this one:
WARNING: at net/sched/sch_generic.c:246 dev_watchdog+0x12d/0x1d5()
Hardware name: System Product Name
NETDEV WATCHDOG: eth2 (8139too): transmit queue 0 timed out
...
[] ? dev_watchdog+0x12d/0x1d5
[] warn_slowpath_common+0x77/0xa4
[] warn_slowpath_fmt+0x64/0x66
[] ? default_wake_function+0xd/0xf
[] ? autoremove_wake_function+0x11/0x38
[] ? enqueue_entity+0x113/0x11b
[] ? __wake_up_common+0x46/0x76
[] ? netdev_drivername+0x43/0x4b
[] dev_watchdog+0x12d/0x1d5

And the network for eth0 would stop working, stopping the device, removing the module and reinserting it did not help.

I've read several places of people having the same problem, like this one:
http://kerneltrap.org/mailarchive/linux-kernel/2008/6/13/2121634

But none of the posts I found had a working solution. But they did help me solve the problem :o)

If I booted the kernel with the
pci=noapic
option, the kernel would freeze and write an error message like
IRQ #7 DISABLED nobody cared

That gave me a hint that i may had something to do with APIC, maybe a broken apic implementation on the motherboard/bios.

Anyways, i disabled APIC in the bios, and removed the
pci=noapic
option, and that solved it!

So i guess the ASUS K8V-VM motherboard has a broken APIC implementation..
(Or it could be the linux implementation that is faulty, since I never had any problems with this machine while it was running windows)