Bug 432364

Summary: e1000e: Wakeup-on-Lan does not work
Product: Red Hat Enterprise Linux 4 Reporter: Flavio Leitner <fleitner>
Component: kernelAssignee: Andy Gospodarek <agospoda>
Status: CLOSED ERRATA QA Contact: Martin Jenner <mjenner>
Severity: high Docs Contact:
Priority: high    
Version: 4.6CC: akarlsso, bruce.w.allan, ddomingo, jesse.brandeburg, jtluka, junichi.nomura, peterm, rbiba, tao, tatsu-ab1
Target Milestone: rc   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2009-05-18 19:13:22 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 391231, 391511, 457499, 461297    
Attachments:
Description Flags
e1000e-add-reboot-notifier-so-WoL-will-work.patch none

Comment 2 Andy Gospodarek 2008-03-24 19:22:39 UTC
My test kernels have been updated to include a patch for this bugzilla.

http://people.redhat.com/agospoda/#rhel4

Please test them and report back your results.

Comment 3 Peter Martuccelli 2008-03-27 16:05:50 UTC
Flavio please post your test results here.

Comment 4 Peter Martuccelli 2008-03-27 16:14:05 UTC
Patch went in against bug 311961.

Comment 6 Vivek Goyal 2008-03-27 23:23:43 UTC
Committed in 68.27.EL . RPMS are available at http://people.redhat.com/vgoyal/rhel4/

Comment 7 Issue Tracker 2008-03-28 15:11:01 UTC
Tested 68.27.EL with etherwake on a 64bit system. NAK - does not work
here.

/Anders



This event sent from IssueTracker by akarlsso 
 issue 140324

Comment 8 Issue Tracker 2008-03-28 15:35:56 UTC
That's a NAK on 2.6.9-68.26.EL.gtest.40smp from gospo as well. Tested here
on Econel 100 S2 system with a 82566DM-2 NIC.

# ethtool -i eth0
driver: e1000e
version: 0.2.0
firmware-version: 1.3-0
bus-info: 0000:00:19.0

]# lspci -s 0000:00:19.0 -v
00:19.0 Ethernet controller: Intel Corporation 82566DM-2 Gigabit Network
Connection (rev 02)
	Subsystem: Fujitsu Siemens Computer GmbH: Unknown device 10fd
	Flags: bus master, fast devsel, latency 0, IRQ 233
	Memory at d8300000 (32-bit, non-prefetchable) [size=128K]
	Memory at d8320000 (32-bit, non-prefetchable) [size=4K]
	I/O ports at 1820 [size=32]
	Capabilities: [c8] Power Management version 2
	Capabilities: [d0] Message Signalled Interrupts: 64bit+ Queue=0/0
Enable+
	Capabilities: [e0] #13 [0306]

Thanks.

/Anders


Internal Status set to 'Waiting on SEG'

This event sent from IssueTracker by akarlsso 
 issue 140324

Comment 9 Andy Gospodarek 2008-03-28 15:40:02 UTC
I assume that an e1000-based card doesn't WoL on this system or does it?

Comment 10 Sirius Rayner-Karlsson 2008-03-28 15:55:35 UTC
Same system with RHEL5.1 and your patched kernel does. I don't have a e1000
based card to test with. :-/ This is the on-board chip (82566DM-2) that require
the e1000e driver.

If there is anything else I can try, let me know.

Comment 11 Andy Gospodarek 2008-03-28 18:38:33 UTC
It's odd that WoL doesn't work on that card since the drivers are basically
identical.  Aside from a small change that doesn't do crc calculation and a fix
that disables WoL on E1000_DEV_ID_82571EB_SERDES_QUAD there are no major changes
between rhel4 and rhel5.

I start to wonder if this is an ACPI issue....

Comment 12 Andy Gospodarek 2008-03-28 18:52:25 UTC
I have a system running a fedora kernel that has one of these cards, but I can
only do WoL with the magic packet format.  It seems this card does not save the
WoL configuration across reboots.  Were you using magic packet or one of the
other methods?

Comment 24 Don Domingo 2008-05-21 00:35:31 UTC
added to RHEL4.7 release notes under "Driver Updates => Network" :

<quote>
e1000e: driver updated to latest upstream version. This update applies several
fixes, including a fix for a bug that prevented the Wakeup-On-Lan (WOL) feature
from working in some cases.

Further, this update also provides support for ICH9m and 82574L Shelter Island
network interface cards.
</quote>

please advise if any further revisions are required. thanks!

Comment 25 Issue Tracker 2008-05-22 08:51:50 UTC
Hi there gospo,

The release notes suggest that we have a fix for the WOL from ACPI S5
state problem. What's your latest kernel, and I'll give it a spin?

Thanks!

/Anders



This event sent from IssueTracker by akarlsso 
 issue 140324

Comment 26 Andy Gospodarek 2008-05-22 11:18:00 UTC
Right now they are:

2.6.9-70.EL.gtest.44

as always you can get them here:

http://people.redhat.com/agospoda/#rhel4

Comment 27 Issue Tracker 2008-05-22 14:03:07 UTC
Hi there gospo,

I've just tested your latest test kernel, and WOL from ACPI S5 does not
work. I tried it more than once just to be sure. I think that the change
to the driver is only one half of solving WOL and that we may need ACPI or
powermanagement tweaks to get the rest. :-/

I am all ears on suggestions what I can do to help.

Thanks!

/Anders



This event sent from IssueTracker by akarlsso 
 issue 140324

Comment 29 Don Domingo 2008-05-22 23:09:00 UTC
as per testing results, revising RHEL4.7 release note for this item:

<quote>
e1000e: driver updated to latest upstream version. This update provides support
for ICH9m and 82574L Shelter Island network interface cards, and applies several
upstream fixes as well.
</quote>

please advise if any revisions are required. thanks!

Comment 30 Don Domingo 2008-06-02 23:14:02 UTC
Hi,

the RHEL4.7 release notes deadline is on June 17, 2008 (Tuesday). they will
undergo a final proofread before being dropped to translation, at which point no
further additions or revisions will be entertained.

a mockup of the RHEL4.7 release notes can be viewed here:
http://intranet.corp.redhat.com/ic/intranet/RHEL4u7relnotesmockup.html

please use the aforementioned link to verify if your bugzilla is already in the
release notes (if it needs to be). each item in the release notes contains a
link to its original bug; as such, you can search through the release notes by
bug number.

Cheers,
Don

Comment 32 Larry Troan 2008-06-10 14:48:27 UTC
Martin, I need Fujitsu-Siemens' permission to open this bug to Intel for further
comment and investigation. This is URGENT.

Comment 33 Larry Troan 2008-06-10 14:51:56 UTC
Oops. This is a bublic bug. No permission required. Intel can see it.

Comment 36 Kosuke TATSUKAWA 2008-06-18 01:29:14 UTC
Hi,

I think WoL doesn't work on RHEL4.7 e1000e because e1000_shutdown() is #ifdef-ed
out in netdev.c.  That's where the driver tries to save the ACPI state.

The reboot notifier calls this function in the e1000 driver.

Comment 37 Jesse Brandeburg 2008-06-18 01:47:06 UTC
I think Kosuke's comment is probably correct.  I'm CC'd on this bug and paying
attention, so please let me know if there are system details so we might try to
reproduce and suggest/test patches.

Comment 38 Kosuke TATSUKAWA 2008-06-18 02:01:39 UTC
You should be able to reproduce the problem on the ICH9 NIC (RHEL4.7 uses e1000
driver for the ESB2 NIC, so it doesn't have this problem).

Comment 39 Andy Gospodarek 2008-06-18 12:49:43 UTC
e1000_shutdown is ifdef'd out because rhel4's pci_driver struct does not support
the shutdown routine.  Here's the pci_driver definition:

struct pci_driver {
        struct list_head node;
        char *name;
        const struct pci_device_id *id_table;
        int  (*probe)  (struct pci_dev *dev, const struct pci_device_id *id); 
        void (*remove) (struct pci_dev *dev);
        int  (*suspend) (struct pci_dev *dev, u32 state);
        int  (*resume) (struct pci_dev *dev);
        int  (*enable_wake) (struct pci_dev *dev, u32 state, int enable);

        struct device_driver    driver;
        struct pci_dynids dynids;
};

so you can see why we needed to make the change in the e1000e driver from upstream:

/* PCI Device API Driver */
static struct pci_driver e1000_driver = {
        .name     = e1000e_driver_name,
        .id_table = e1000_pci_tbl,
        .probe    = e1000_probe,
        .remove   = __devexit_p(e1000_remove),
#ifdef CONFIG_PM
        /* Power Managment Hooks */
        .suspend  = e1000_suspend,
        .resume   = e1000_resume,
#endif
#if 0 /* not in RHEL4 */
        .shutdown = e1000_shutdown,
        .err_handler = &e1000_err_handler
#endif
};

Also, if you look at e1000_shutdown all it does is call e1000_suspend(pdev,
PMSG_SUSPEND) which is exactly what is called when e1000_suspend is called.

There may be something that is needed in e1000_suspend to help save ACPI state,
but what's more likely is that we have another ACPI problem somewhere.


Comment 40 Kosuke TATSUKAWA 2008-06-19 00:34:29 UTC
> e1000_shutdown is ifdef'd out because rhel4's pci_driver struct does not support
> the shutdown routine.  Here's the pci_driver definition:
SNIP...
> so you can see why we needed to make the change in the e1000e driver from
upstream:

I understand.

> Also, if you look at e1000_shutdown all it does is call e1000_suspend(pdev,
> PMSG_SUSPEND) which is exactly what is called when e1000_suspend is called.
>
> There may be something that is needed in e1000_suspend to help save ACPI state,
> but what's more likely is that we have another ACPI problem somewhere.

Yes, e1000_suspend is the function that has to be called during shutdown.
e1000 driver has exactly the same problem, but it solves this by adding a reboot
notifier hook that calls this function.  e1000e driver could do the same thing.

I'm assuming from comment #37 that somebody is working on it now.

Comment 44 RHEL Program Management 2008-09-03 12:53:13 UTC
Updating PM score.

Comment 48 Andy Gospodarek 2008-12-23 02:36:40 UTC
My test kernels have been updated to include a patch for this bugzilla.

http://people.redhat.com/agospoda/#rhel4

Please test them and report back your results.

Comment 51 Andy Gospodarek 2009-01-06 00:54:59 UTC
My test kernels have been updated to include a patch for this bugzilla.

http://people.redhat.com/agospoda/#rhel4

Please test them and report back your results.

Comment 56 Andy Gospodarek 2009-01-13 22:05:10 UTC
Created attachment 328922 [details]
e1000e-add-reboot-notifier-so-WoL-will-work.patch

This patch -- as suggested by someone (not sure who) -- makes WoL work with an e1000e device on my system, where it previously did not.

I am building test kernels now and should have some available tomorrow.

Comment 57 Andy Gospodarek 2009-01-14 14:39:13 UTC
My test kernels have been updated to include a patch for this bugzilla.

http://people.redhat.com/agospoda/#rhel4

Please test them and report back your results.  Without immediate
feedback there is a good chance this or any other fix for this driver
will not be included in the upcoming update.

Comment 58 Issue Tracker 2009-01-14 17:22:54 UTC
Hi Andy,

Below is the feedback from IT#140324.
-------------
Hi Gary,

checked the following:

- kernel-smp-2.6.9-78.28.EL.gtest.56.i686.rpm
- kernel-smp-2.6.9-78.28.EL.gtest.56.x86_64.rpm

with

- Intel 82566-DM (onboard), both kernels ... ok
- Intel 82572 EI Copper, i686 kernel     ... ok
- Intel 82574L Shelter Island, x86_64    ... ok

by

sending those systems to S5 and waking them up via ether-wake <MAC>
and pinging other systems to ensure basic functionality.

So, this seems to work!

Regards,
  Joachim
-----------

Flavio

Internal Status set to 'Waiting on Engineering'

This event sent from IssueTracker by fleitner 
 issue 140324

Comment 61 Vivek Goyal 2009-01-26 15:10:15 UTC
Committed in 80.EL . RPMS are available at http://people.redhat.com/vgoyal/rhel4/

Comment 69 Jan Tluka 2009-04-17 14:45:38 UTC
Patch is in -88.EL kernel.

Comment 72 errata-xmlrpc 2009-05-18 19:13:22 UTC
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on therefore solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.

http://rhn.redhat.com/errata/RHSA-2009-1024.html