[Pkg-sysvinit-devel] Bug#501351: Bug#501351: sysvinit: halt breaks wake on lan / WOL under NFS root /diskless lenny
Harry Coin
hcoin at quietfountain.com
Tue Oct 7 15:47:19 UTC 2008
Petter Reinholdtsen wrote:
> [Harry Coin]
>
>> Upgrading to lenny from etch has broken wake on lan after 'poweroff'
>> on our many Dell Optiplex headless /diskless systems. All packages
>> are latest lenny/testing as of 6 October 2008.
>>
>
> This is sad.
>
Yes.
>
>> Looking at the code I see that the latest network drivers always
>> disable WOL after ifup and before ifdown. Then, either at driver
>> unload time or ifdown time they set the WOL bit in hardware
>> according to option.
>>
>
> It the kernel drivers behavior with respect to wake-on-lan defined
> somewhere? As I see this, the kernel drivers have no consistent
> interface to userspace, and thus make it impossible to solve this in a
> reliably way in userspace.
Because 'halt' has kernel-feeling options to block or do 'ifdown' and
block or do 'disk sync', its authors must be part of the answer. Long
term my suggestion is both those options seem to be things the kernel
filesystem and storage drivers should do on its way to orderly
ending/rebooting and they properly shouldn't be part of userspace halt.
But since they are at present and since halt is the program that hangs
when doing the right thing (asking for ifdown to set WOL) I am asking
halt authors to engage the correct kernel maintainers to decide either
the kernel and network driver authors must take responsibility to down
the interface or call shutdown routines even when NFS root just before
poweroff happens, or userspace drivers must pivot_root off the nfs root
to a tempfs system and down the interface before calling for a system
poweroff. As it is, network drivers engage WOL options when downing
the interface (though I worry some do it in the .shutdown routine).
Anyone can reproduce this problem: set up a NFS root system then try
poweroff using and not using halt's ifdown option. When choosing ifdown
option, you will see halt hang just before poweroff waiting for a
response from the NFS server that will never come because ifdown has
happened. In this case WOL is set in the adapters but because halt
never actually turns the system off and never exits -- having WOL turned
on is of no importance. The system is effectively hung until a physical
reboot. In the other case, leaving halt's ifdown option not chosen
when using NFS root will allow halt to exit normally, but the network
drivers routines that set the WOL bit never get called by the kernel, so
WOL is broken although the system is turned off.
> This make it the responsibility of the
> kernel drivers and the kernel space to come up with a solution. If
> there is a definition on how the kernel drivers should behave, and
> user space applications can depend on this definition during shutdown,
> we can discuss how to solve this in sysvinit. Until such definition
> show up, I have no idea how to solve this issue reliably.
>
> Please let us know how the kernel decided to handle wake-on-lan in
> network drivers, if such decision exist.
>
>
I am asking the halt authors to forward this bug to the correct people
since your ideas about who they are must be better than mine.
> Happy hacking,
>
Not so much as I hope! Upgrades near release like Lenny are not supposed
to break basic things. The effect of this problem is wasteful usage of
energy keeping systems that have no work to do nevertheless powered up.
More information about the Pkg-sysvinit-devel
mailing list