> I'm trying to set up a box using the trinux-distribution on a advantech
> PCM-5862E board. This board has a RTL8139-Chip onboard. When I enable
the
> ethernet-interface using ifconfig I receive a error-message:
>
> "eth0: Too much work at interrupt, IntrStatus=0x0001".
>
> A ping to/from another address in the network fails in both directions.
>
> "cat /proc/interrupts | grep eth0 " doesn't show any
interrupts-problems:
>
> --- cut ---
> 11: 744 XT-PIC: eth0
> --- cut ---
>
> This problem only happens while the pc is attached to the network :-?
>
>
> What can I do now?
You could try searching groups.google.com to see what others have done
for the problem. Searching for "linux too much work interrupt" gave some
good information, and searching for "linux too much work interrupt 8139"
turned up even more specific information.
To make it short, the RTL8139 is pretty much the least-featured piece of
hardware that can be called an Ethernet controller, which makes it low in
price - which is why you see it used so often. The error message you see
is caused when a high number of packets are received very quickly (usually
very small packets), and the driver can't handle a packet quickly enough.
The driver *should* still work after that.
Now, the only references I've seen to that happening were on relatively
old hardware, like the original Pentium processers, which it looks like
you've got. A combination of a relatively weak CPU and a very weak
network card aren't a good match! Your possible solutions are (a) use a
better NIC, (b) use a more modern processer, or (c) use NAPI.
You say that it occurs when there's very little on the network, but I'll
bet that if you actually watched the traffic at the times it happens,
you'd see bursts of tiny packets.
steve
|