Subject: Re: [RFC] BOOKE watchdog and kexec

From: Dave Jiang <[email-masked]>
Date: Tue, 22 May 2007 17:29:22 -0700

Geoff Levand wrote:
> Dave Jiang wrote:
>> What would be the appropriate way to deal with the BOOKE watchdog in order to
>> properly kexec? The BOOKE watchdog cannot be disabled. With the current
>> implementation, a watchdog daemon in userland is required to poke the
>> /dev/watchdog continously in order to keep it from going off. In the kexec
>> situation, the watchdog daemon in userland goes away when the new kernel is
>> executed. It is very possible that the new kernel can potentially timeout on a
>> certain hardware device initialization (i.e. SCSI discovery/timeout) and causes
>> the watchdog to go off and reset the hardware. The reset is of course not
>> wanted in this situation.
> 
> I would think the same situation exists when the bootloader loads the first
> kernel.  If that works, then you should be able to use the same mechanism to
> get the second kernel up.
> 
> -Geoff
> 

Not really. The bootloader starts from a hardware reset. The watchdog is off
from a hardware reset. The kernel driver has to specifically turn the watchdog
on either via kernel command line or by opening the watchdog device
/dev/watchdog right now. So technically this issue already exists even without
kexec. If the watchdog is turned on via kernel parameter and we hit a device
initialization timeout that takes too long, then we will get a watchdog reset.
There is a period of uncertainty between the watchdog turning on and when the
userland watchdog daemon is started with the current implementation.

-- 

------------------------------------------------------
Dave Jiang
Software Engineer
MontaVista Software, Inc.
http://www.mvista.com
------------------------------------------------------