sky2: kernel does not power off NIC on shutdown when WOL is disabled
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
linux (Ubuntu) |
Expired
|
Undecided
|
Unassigned | ||
network-manager (Ubuntu) |
Invalid
|
Low
|
Unassigned |
Bug Description
Binary package hint: network-manager
CONTEXT:
Ubuntu 10.4 Desktop x86
lsb_release -rd .. says .. Description: Ubuntu 10.04.1 LTS Release: 10.04
uname -r .. says .. 2.6.32-24-generic
System hardware is Acer T180 desktop 3Gb RAM AMD 3800+ NVidia 6100 plus Marvell Yukon NIC
GNOME 2.30.2 Network Manager 0.8-0ubuntu3
sudo ethtool -i eth1 .. says .. driver: sky2 version: 1.25 firmware-version: N/A bus-info: 0000:03:00.0
dmesg .. says ..
0.847886] sky2 driver version 1.25
[ 0.854478] ACPI: PCI Interrupt Link [APC6] enabled at IRQ 16
[ 0.854488] sky2 0000:03:00.0: PCI INT A -> Link[APC6] -> GSI 16 (level, low) -> IRQ 16
[ 0.854503] sky2 0000:03:00.0: setting latency timer to 64
[ 0.854540] sky2 0000:03:00.0: Yukon-2 EC Ultra chip revision 2
[ 0.854602] alloc irq_desc for 27 on node -1
[ 0.854604] alloc kstat_irqs on node -1
[ 0.854617] sky2 0000:03:00.0: irq 27 for MSI/MSI-X
INITIAL PROBLEM
Other machine on the network is OSX 10.4.11 PPC mac mini. After Ubuntu 10.4 "shutdown -h now" with Ubuntu's NIC still powered on (see "OBSERVATIONS" below) after several minutes I will get a log message like this: "Aug 18 17:28:47 mona kernel[0]: { 851b0 910040} UniNEnet:
ADDITIONAL OBSERVATIONS:
0) Wake on LAN is turned off in the PC's BIOS
1) Router status lights show the physical connection from the Ubuntu system is still active, and on checking PC system rear lights the NIC is still powered on even tho' the PC has otherwise been shut down. Even after removing all power to the Ubuntu box, results are unpredictable. Putting the Mac through Sleep/Unsleep can resolve the issue, but at other times I have to reboot both the Mac and the router in order to recover the network.
2) On Ubuntu 8.04 "shutdown -h now" powers off the NIC.
3) On Ubuntu 10.4 it does not. If I issue "sudo ifconfig eth1 down" first this will avoid the problem as the NIC is powered down as expected.
4) Using Network Manager "Disconnect" still leaves eth1 "UP" in ifconfig (I would expect this to become "DOWN").
CONCLUSION
Because the PC's NIC is not properly quiesced it is still active on the network in some kind of "zombie" state. I have not tried to sniff the network to see what it is putting out, but the point is that the interface should not be left in this state. Therefore Network Manager (or some other software that I do not know about) fails to react properly to the shutdown request and fails to do necessary cleanup, eventually causing the network problem I observed.
OTHER OBSERVATIONS
I had originally looked into Network Manager because I was getting the "Networking disabled" bug reported in https:/
In /etc/Network Manager/
In "/etc/Network Manager/
Network Manager 8.01 will be available shortly.
Hi! Thanks for filing this bug and helping to make Ubuntu better!
This is expected behaviour, as shutting down the NIC in some cases will cause Wake on Lan to be unusable later (e.g. at some point Windows' broadcom drivers would shut down a port making it totally unusable in Ubuntu). Additionally, this does not appear to be an issue with NetworkManager since other systems (e.g. ifupdown) also touch the interface, and ultimately the kernel will be what is dealing with the NIC.
As you were able to link from Apple support forums: http:// lists.apple. com/archives/ macos-x- server/ 2004/Nov/ msg00199. html:
"We've almost always traced this down to a termination issue. Packets transmitted (unicast) aren't getting echo'd back to the NI properly. When you transmit a packet you're supposed to be able to hear it echo back. This can be caused by excessive traffic, dropped packets, collisions, or a switch that can't forward. It's also a function of the NI being able to handle the traffic. But it's basically a frame problem.
You can confirm this with a sniffer. Just don't run the sniffer on the same host as it's already loosing packets."
This is likely caused by the switch not doing its job right. My understanding is even if the interface stays up (and I have used systems other than Apple/OSX on a network with Ubuntu machines offline successfully), the switch should be able to mark the link at the spanning tree level as being down, the only thing being sent to the offline device being BPDUs (and nothing coming from it).
This really looks to me like an OSX bug or a hardware defect and not an issue with NetworkManager or even Ubuntu.
My suggestion is to follow the advice in the apple forum linked above, and run a sniffer on a third system (probably better if it is not an OSX device or the shutdown Ubuntu machine :), and see if there is traffic from the MAC address of the device that should be offline that reaches the other systems (as it would be broadcasted, otherwise the system isn't really offline). Another possibility would be to bring up the bug at Apple (through support or whatever facilities they have), since their systems need to be able to deal properly with "interference", or unsollicited packets.
For now, I'm marking this bug as Invalid. If you can provide a packet capture that shows there is indeed traffic coming from the offline Ubuntu system (and that this can provably be linked to not shutting down the NIC, which would still much more likely mean it's a bug in NIC firmware), then don't hesitate to re-open this bug or file a new one that refers to this bug number and case.
Thanks again!