Skip to contentSkip to conversation

New: e1000e NIC not working after reboot

Bugme-new Andrew Morton 3 participants 3 messages Dec 7, 2009 – Jan 27, 2010 1 message not in the archive

Subsystems (2)
lore
Share & tools
lore

A message that is not in the archive (sent off-list or not yet received): [email protected]/

#1 lore raw

(switched to email. Please respond via emailed reply-to-all, not via the bugzilla web interface).

Quoted 85 lines · On Sun, 6 Dec 2009 13:04:20 GMT [email protected] wrote:

http://bugzilla.kernel.org/show_bug.cgi?id=14748

           Summary: e1000e NIC not working after reboot
           Product: Drivers
           Version: 2.5
    Kernel Version: 2.6.32
          Platform: All
        OS/Version: Linux
              Tree: Mainline
            Status: NEW
          Severity: normal
          Priority: P1
         Component: Network
        AssignedTo: [email protected]
        ReportedBy: [email protected]
        Regression: Yes

When I power up my system the NIC is working properly.
After every reboot the NIC is not working. I mean the eth0 is created, but neither dhcpcd gets IP nor static setup helps
.
ifconfig eth0 shows zero packets on Rx and Tx (no errors, overrunns, etc.)

logs after modprobing e1000e (NIC working OK):

Dec  6 12:29:28 mcxR kernel: e1000e: Intel(R) PRO/1000 Network Driver -
1.0.2-k2
Dec  6 12:29:28 mcxR kernel: e1000e: Copyright (c) 1999-2008 Intel Corporation.
Dec  6 12:29:28 mcxR kernel: e1000e 0000:00:19.0: PCI INT A -> GSI 20 (level,
low) -> IRQ 20
Dec  6 12:29:28 mcxR kernel: e1000e 0000:00:19.0: setting latency timer to 64
Dec  6 12:29:28 mcxR kernel: e1000e 0000:00:19.0: irq 30 for MSI/MSI-X
Dec  6 12:29:28 mcxR kernel: 0000:00:19.0: eth0: (PCI Express:2.5GB/s:Width x1)
00:15:58:cc:0f:35
Dec  6 12:29:28 mcxR kernel: 0000:00:19.0: eth0: Intel(R) PRO/1000 Network
Connection
Dec  6 12:29:28 mcxR kernel: 0000:00:19.0: eth0: MAC: 6, PHY: 6, PBA No:
ffffff-0ff
Dec  6 12:29:28 mcxR kernel: e1000e 0000:00:19.0: irq 30 for MSI/MSI-X
Dec  6 12:29:28 mcxR kernel: e1000e 0000:00:19.0: irq 30 for MSI/MSI-X
Dec  6 12:29:30 mcxR kernel: e1000e: eth0 NIC Link is Up 100 Mbps Full Duplex,

Flow Control: RX/TX

logs after rebooting system and modprobing e1000e (NIC not working):

Dec  6 11:57:46 mcxR kernel: e1000e: Intel(R) PRO/1000 Network Driver -
1.0.2-k2
Dec  6 11:57:46 mcxR kernel: e1000e: Copyright (c) 1999-2008 Intel Corporation.
Dec  6 11:57:46 mcxR kernel: e1000e 0000:00:19.0: PCI INT A -> GSI 20 (level,
low) -> IRQ 20
Dec  6 11:57:46 mcxR kernel: e1000e 0000:00:19.0: setting latency timer to 64
Dec  6 11:57:46 mcxR kernel: e1000e 0000:00:19.0: irq 30 for MSI/MSI-X
Dec  6 11:57:46 mcxR kernel: 0000:00:19.0: eth0: (PCI Express:2.5GB/s:Width x1)
00:15:58:cc:0f:35
Dec  6 11:57:46 mcxR kernel: 0000:00:19.0: eth0: Intel(R) PRO/1000 Network
Connection
Dec  6 11:57:46 mcxR kernel: 0000:00:19.0: eth0: MAC: 6, PHY: 6, PBA No:
ffffff-0ff
Dec  6 11:57:48 mcxR kernel: e1000e 0000:00:19.0: irq 30 for MSI/MSI-X
Dec  6 11:57:48 mcxR kernel: e1000e 0000:00:19.0: irq 30 for MSI/MSI-X

Additional info:
Software:
- distro: Arch Linux
- kernel version: 2.6.32
- e1000e version: 1.0.2-k2

Hardware:
- notebook: Lenovo ThinkPad R61
- network card: Intel Gigabit

# lspci -v
00:19.0 Ethernet controller: Intel Corporation 82566MC Gigabit Network
Connection (rev 03)
        Subsystem: Lenovo Device 20ba
        Flags: bus master, fast devsel, latency 0, IRQ 11
        Memory at fe200000 (32-bit, non-prefetchable) [size=128K]
        Memory at fe224000 (32-bit, non-prefetchable) [size=4K]
        I/O ports at 1800 [size=32]
        Capabilities: [c8] Power Management version 2
        Capabilities: [d0] MSI: Enable- Count=1/1 Maskable- 64bit+
        Kernel modules: e1000e
Quoted 4 lines
$ uname -a
Linux mcxR 2.6.32-ARCH #7 SMP PREEMPT Fri Dec 4 15:39:16 CET 2009 x86_64
Intel(R) Core(TM)2 Duo CPU T7100 @ 1.80GHz GenuineIntel GNU/Linux

Thanks. You don't mention which previous kernel version worked OK. Was it 2.6.31?

#2 lore raw
Quoted 3 lines · Andrew Morton
Quoted 3 lines

When I power up my system the NIC is working properly.
After every reboot the NIC is not working. I mean the eth0 is created, but neither dhcpcd gets IP nor static setup helps

We have a userspace tool called ethregs downloadable from
http://downloads.sourceforge.net/project/e1000/Register%20Dump%20Tool/1.7.2/ethregs-1.7.2.tar.gz?use_mirror=iweb

if it is not too much trouble can you build this tool and run it before (when the port is working) and after (when the link didn't come up)

you can attach them to the bug, and reply to this thread would be best.

also please include the output of lspci -vvv after the failure.

Thanks,
Jesse

#3 lore raw
Quoted 5 lines · Jesse
Quoted 3 lines · Andrew Morton
Quoted 3 lines

When I power up my system the NIC is working properly.
After every reboot the NIC is not working. I mean the eth0 is created, but neither dhcpcd gets IP nor static setup helps

Quoted 7 lines

We have a userspace tool called ethregs downloadable from
http://downloads.sourceforge.net/project/e1000/Register%20Dump%20Tool/1.7.2/ethregs-1.7.2.tar.gz?use_mirror=iweb

if it is not too much trouble can you build this tool and run it before (when the port is working) and after (when the link didn't come up)

you can attach them to the bug, and reply to this thread would be best.

I've looked at the ethregs dumps, the good news is it looks like the hardware succeeds to self-init, but on the ethregs-fails.txt did you load the driver? it appears you did not, or at least didn't do

# ip link set eth0 up
# ethregs > regs.txt

also looked at the lspci -vvv information and in both cases MSI was enabled, but in the fails case the value in the data field for the MSI vector is different, which seems a a little strange but I'm not sure if it is responsible for failure

if the driver was loaded, and failed dhcp, what happens when you run ethtool -t eth0 offline?

when the driver is loaded, and the dhcp fails, can you assign an address manually (and bring the interface up) and have it work?

one more thing to note please, can you send cat /proc/interrupts from 10 seconds apart when the driver is loaded and the port is UP, but not working. dhcpcd or dhclient both have a tendency to put the port DOWN after they fail to get address, so thats why you may need to do # ip link command above before gathering /proc/interrupts.

is your bios up to date?

Thanks, sorry for the delay, lets see if we can figure out what is up.

Jesse