SoftDog: reboot message missed

From: Timofeev_Alexander
Date: Wed Aug 26 2009 - 09:22:02 EST


Hi All,

I use 2.6.16.60 kernel. It's been compiled with CONFIG_WATCHDOG_NOWAYOUT
<http://lxr.linux.no/linux-bk+*/+code=CONFIG_WATCHDOG_NOWAYOUT> =false.
It reboots system silently. The reboot message does not appear in
/var/log/messages.
Syslog-ng config is correct.
I looked through the watchdog.c and found:

93
<http://lxr.linux.no/linux-bk+*/drivers/char/watchdog/softdog.c#L93>
static void watchdog_fire
<http://lxr.linux.no/linux-bk+*/+code=watchdog_fire> (unsigned long data
<http://lxr.linux.no/linux-bk+*/+code=data> )
94
<http://lxr.linux.no/linux-bk+*/drivers/char/watchdog/softdog.c#L94> {
95
<http://lxr.linux.no/linux-bk+*/drivers/char/watchdog/softdog.c#L95>
if (soft_noboot <http://lxr.linux.no/linux-bk+*/+code=soft_noboot> )
96
<http://lxr.linux.no/linux-bk+*/drivers/char/watchdog/softdog.c#L96>
printk <http://lxr.linux.no/linux-bk+*/+code=printk> (KERN_CRIT
<http://lxr.linux.no/linux-bk+*/+code=KERN_CRIT> PFX
<http://lxr.linux.no/linux-bk+*/+code=PFX> "Triggered - Reboot
ignored.\n");
97
<http://lxr.linux.no/linux-bk+*/drivers/char/watchdog/softdog.c#L97>
else
98
<http://lxr.linux.no/linux-bk+*/drivers/char/watchdog/softdog.c#L98>
{
99
<http://lxr.linux.no/linux-bk+*/drivers/char/watchdog/softdog.c#L99>
printk <http://lxr.linux.no/linux-bk+*/+code=printk> (KERN_CRIT
<http://lxr.linux.no/linux-bk+*/+code=KERN_CRIT> PFX
<http://lxr.linux.no/linux-bk+*/+code=PFX> "Initiating system
reboot.\n");
100
<http://lxr.linux.no/linux-bk+*/drivers/char/watchdog/softdog.c#L100>
machine_restart <http://lxr.linux.no/linux-bk+*/+code=machine_restart>
(NULL <http://lxr.linux.no/linux-bk+*/+code=NULL> );
101
<http://lxr.linux.no/linux-bk+*/drivers/char/watchdog/softdog.c#L101>
printk <http://lxr.linux.no/linux-bk+*/+code=printk> (KERN_CRIT
<http://lxr.linux.no/linux-bk+*/+code=KERN_CRIT> PFX
<http://lxr.linux.no/linux-bk+*/+code=PFX> "Reboot didn't ?????\n");
102
<http://lxr.linux.no/linux-bk+*/drivers/char/watchdog/softdog.c#L102>
}
103
<http://lxr.linux.no/linux-bk+*/drivers/char/watchdog/softdog.c#L103> }


I suspect that system might be halted before printk buffer gets flushed.
Does anybody encounter such a behavior? Is there a workaround?

In fact I only need to know if the last reboot was caused by the timer.
Unfortunately the WDIOC_GETBOOTSTATUS
<http://lxr.linux.no/linux-bk+*/+code=WDIOC_GETBOOTSTATUS> ioctl is not
implemented ( according to the watchdog.c:softdog_ioctl
<http://lxr.linux.no/linux-bk+*/+code=softdog_ioctl> ).

210
<http://lxr.linux.no/linux-bk+*/drivers/char/watchdog/softdog.c#L210>
case WDIOC_GETBOOTSTATUS
<http://lxr.linux.no/linux-bk+*/+code=WDIOC_GETBOOTSTATUS> :
211
<http://lxr.linux.no/linux-bk+*/drivers/char/watchdog/softdog.c#L211>
return put_user <http://lxr.linux.no/linux-bk+*/+code=put_user> (0, p
<http://lxr.linux.no/linux-bk+*/+code=p> );


TIA


Alex T.




--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/