Difference between revisions of "Problem with e1000: Open issue with latency"

From ThinkWiki
Jump to: navigation, search
(created page for explanation of latency issue)
 
m
 
(6 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
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 [http://bugme.osdl.org/show_bug.cgi?id=6929 here]
 
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 [http://bugme.osdl.org/show_bug.cgi?id=6929 here]
  
The recommended fix is to load the e1000 driver with an RxIntDelay of 8 or 32:
+
[http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-63027 BIOS update 2.11] is reported to fix the problem so that setting RxIntDelay is not necessary.
  
<tt>modprobe e1000 RxIntDelay=8</tt>
+
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:
 +
 
 +
<tt>modprobe -r e1000</tt>
 +
 
 +
<tt>modprobe e1000 RxIntDelay=32</tt>
 +
 
 +
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.
  
This fix is recommended by Intel developers, and has been shown to work at least anecdotally by the other of this page.
 
  
 
===What is RxIntDelay?===
 
===What is RxIntDelay?===

Latest revision as of 15:14, 16 July 2007

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.