Re: Fwd: Re: e1000 1sec latency problem

From: Kok, Auke
Date: Sat Feb 09 2008 - 16:55:15 EST


Martin Rogge wrote:
> On Saturday 09 February 2008 11:07:26 Martin Rogge wrote:
>> Hi,
>>
>> I am not so familiar with the various mailing lists and missed out on
>> e1000-devel@xxxxxxxxxxxxxxxxxxxxx the first time. Please cc me on any
>> replies.
>>
>> I am looking for help with either making the e1000e driver work on my
>> Thinkpad T60 or fixing the 1s latency issue with e1000.
>>
>> To be honest, I do not understand why the e1000e driver failed to recognize
>> the NIC when I tried. At least, I noticed the correct device ID is defined
>> in drivers/net/e1000e/hw.h:
>>
>> #define E1000_DEV_ID_82573L 0x109A
>>
>> Any help is appreciated.
>>
>> Thanks,
>>
>> Martin
>>
>> ---------- Forwarded Message ----------
>>
>> Subject: Re: e1000 1sec latency problem
>> Date: Thursday 07 February 2008
>> From: Martin Rogge <marogge@xxxxxxxxxxxxx>
>> To: linux-kernel@xxxxxxxxxxxxxxx
>>
>> Pavel Machek wrote:
>>> Hi!
>>>
>>> I have the famous e1000 latency problems:
>> Hi, I have the same problem with my Thinkpad T60.
>>
>> root@zorro:~# ping arnold
>> PING arnold (192.168.158.6) 56(84) bytes of data.
>> 64 bytes from arnold (192.168.158.6): icmp_seq=1 ttl=64 time=49.7 ms
>> 64 bytes from arnold (192.168.158.6): icmp_seq=2 ttl=64 time=0.438 ms
>> 64 bytes from arnold (192.168.158.6): icmp_seq=3 ttl=64 time=1000 ms
>> 64 bytes from arnold (192.168.158.6): icmp_seq=4 ttl=64 time=0.970 ms
>> 64 bytes from arnold (192.168.158.6): icmp_seq=5 ttl=64 time=885 ms
>> 64 bytes from arnold (192.168.158.6): icmp_seq=6 ttl=64 time=0.484 ms
>> 64 bytes from arnold (192.168.158.6): icmp_seq=7 ttl=64 time=529 ms
>> 64 bytes from arnold (192.168.158.6): icmp_seq=8 ttl=64 time=1.02 ms
>> 64 bytes from arnold (192.168.158.6): icmp_seq=9 ttl=64 time=149 ms
>> 64 bytes from arnold (192.168.158.6): icmp_seq=10 ttl=64 time=0.549 ms
>> 64 bytes from arnold (192.168.158.6): icmp_seq=11 ttl=64 time=0.829 ms
>>
>> --- arnold ping statistics ---
>> 11 packets transmitted, 11 received, 0% packet loss, time 9999ms
>> rtt min/avg/max/mdev = 0.438/238.113/1000.967/365.279 ms, pipe 2
>> root@zorro:~# uname -a
>> Linux zorro 2.6.24 #6 SMP PREEMPT Sun Feb 3 18:27:48 CET 2008 i686 Intel(R)
>> Core(TM)2 CPU T7200 @ 2.00GHz GenuineIntel GNU/Linux
>> root@zorro:~# lspci -vvv
>
> [stuff deleted]
>
>> Unfortunately the e1000e driver is not an option as it will not detect the
>> NIC:
>>
>> ----from dmesg with e1000 compiled in:
>> Intel(R) PRO/1000 Network Driver - version 7.3.20-k2-NAPI
>> Copyright (c) 1999-2006 Intel Corporation.
>> ACPI: PCI Interrupt 0000:02:00.0[A] -> GSI 16 (level, low) -> IRQ 16
>> PCI: Setting latency timer of device 0000:02:00.0 to 64
>> e1000: 0000:02:00.0: e1000_probe: (PCI Express:2.5Gb/s:Width x1)
>> 00:15:58:c3:3a:71
>> e1000: eth0: e1000_probe: Intel(R) PRO/1000 Network Connection
>>
>> ----from dmesg with e1000e compiled in:
>> e1000e: Intel(R) PRO/1000 Network Driver - 0.2.0
>> e1000e: Copyright (c) 1999-2007 Intel Corporation.
>>
>> Any pointers?
>>
>> Thanks,
>>
>> Martin
>>
>>
>>
>> -------------------------------------------------------
>
> Just for the records, I googled the following solution for the Lenovo T60:
>
> (a) use the e1000 driver
> (b) if compiling as a module, add the following parameter to modprobe.conf:
> options e1000 RxIntDelay=5
> (c) if compiling a static driver, use the following patch (based on 2.6.24):
>
> --- e1000_param.c.orig 2008-01-24 23:58:37.000000000 +0100
> +++ e1000_param.c 2008-02-09 20:42:23.000000000 +0100
> @@ -158,7 +158,7 @@
> * Valid Range: 0-65535
> */
> E1000_PARAM(RxIntDelay, "Receive Interrupt Delay");
> -#define DEFAULT_RDTR 0
> +#define DEFAULT_RDTR 5
> #define MAX_RXDELAY 0xFFFF
> #define MIN_RXDELAY 0
>
> After reboot, the average ping time is still factor 10 worse than it should
> be, but it stays below 2 ms (which is a remarkable improvement compared to
> 1000 ms).

correct, this was a workaround which improved things for most people, but did not
*fix* it.

the real fix is to disable L1 ASPM alltogether at the cost of more power
consumption, which is what is in e1000e in 2.6.25-git.

Cheers,

Auke

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/