On 2005-11-30 10:20 +0100, Vincent Blondel <vincent@xtra-net.org>
wrote:>
> Hello all,
>
> When having a look at log files on my web servers, I regulary see next
output on the 3COM ethernet interfaces :
>
>
> xl1: transmission error: 90
> xl1: tx underrun, increasing tx start threshold to 120 bytes
> xl1: transmission error: 90
> xl1: tx underrun, increasing tx start threshold to 180 bytes
> xl1: promiscuous mode enabled
> xl1: promiscuous mode disabled
>
> Can somebody explain me what it is and if this situation is normal ?
Yes, that's normal. The driver starts putting data on the Ethernet link
before the whole packet has been fetched via the PCI bus, under the
assumption, that the PCI bus is much faster than the network link.
If there are more competing devices on the bus, then the buffer in the
controller chip will run out of data (transmitter underrun) and the
packet will be garbled (will be sent with a wrong checksum to indicate
this). The driver will then increase the amount of data to prefetch
(slightly incresing the latency, since it will start sending the packet
a few microseconds later).
Thus this is kind of a self-tuning of the driver: It starts with an
optimistic assumption that the Ethernet chip will get access to the
PCI bus with little delay whenever it requests it, but in case this
assumption does not hold, the transmission is delayed slightly after
loss of one packet (i.e. to avoid more packets to be lost) until the
transmission always succeeds with the minimum acceptable amount of
prefetching and corresponding delay.
Regards, STefan