Problem with e1000: Open issue with latency

From ThinkWiki
Revision as of 15:14, 16 July 2007 by Hs12 (Talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

This issue has been observed with the 2.6.17 linux kernel and the e1000 on the T60 and t60p. The bug is being tracked here

BIOS update 2.11 is reported to fix the problem so that setting RxIntDelay is not necessary.

Alternatively, another fix is to load the e1000 driver with an RxIntDelay of 8 or 32, to ensure success, you should also reload the driver by removing it before inserting it:

modprobe -r e1000

modprobe e1000 RxIntDelay=32

This fix is recommended by Intel developers, and has been shown to help, but not completely solve the problem, at least anecdotally. 32 seems to work better than 8, again, anecdotally.

Another fix seems to be installing the newest driver from intel (7.6.5), the latest linux kernel 2.6.22 ships with 7.3.2 and exposes latency problems on a T60 (symptom: every other ICMP response to a host on the local net takes about 1000ms.


What is RxIntDelay?

From the Intel site:

This value delays the generation of receive interrupts in units of 1.024 microseconds. Receive interrupt reduction can improve CPU efficiency if properly tuned for specific network traffic. Increasing this value adds extra latency to frame reception and can end up decreasing the throughput of TCP traffic. If the system is reporting dropped receives, this value may be set too high, causing the driver to run out of available receive descriptors.

CAUTION: When setting RxIntDelay to a value other than 0, adapters may hang (stop transmitting) under certain network conditions. If this occurs a NETDEV WATCHDOG message is logged in the system event log. In addition, the controller is automatically reset, restoring the network connection. To eliminate the potential for the hang ensure that RxIntDelay is set to zero.