2001-12-11 08:00:26

by gspujar

[permalink] [raw]
Subject: software watchdog




Hi all,

I am using software watchdog in my application. When the watchdog reboots the
system,

>>>printk(KERN_CRIT "SOFTDOG: Initiating system reboot.\n"); prints the message
on the console.

I put a delay of 5secs with mdelay, and I can see the message on the console.
I wanted the message as a syslog,

so I added kern.crit in /etc/syslog.conf file.,
But I am not getting the above message in the log file.
Can any one help me with this ????

Thanks
Girish



2001-12-11 08:18:16

by J Sloan

[permalink] [raw]
Subject: Re: software watchdog

[email protected] wrote:

> Hi all,
>
> I am using software watchdog in my application. When the watchdog reboots the
> system,
>
> >>>printk(KERN_CRIT "SOFTDOG: Initiating system reboot.\n"); prints the message
> on the console.
>
> I put a delay of 5secs with mdelay, and I can see the message on the console.
> I wanted the message as a syslog,
>
> so I added kern.crit in /etc/syslog.conf file.,
> But I am not getting the above message in the log file.
> Can any one help me with this ????

Send the message to "*" instead of /var/log/messages

That, and/or arrange to do a sync before reboot.

I'm sure there are other ways as well...

cu

jjs

2001-12-11 10:08:55

by Russell King

[permalink] [raw]
Subject: Re: software watchdog

On Tue, Dec 11, 2001 at 01:33:04PM +0530, [email protected] wrote:
> >>>printk(KERN_CRIT "SOFTDOG: Initiating system reboot.\n"); prints the
> message on the console.
>
> I put a delay of 5secs with mdelay, and I can see the message on the console.
> I wanted the message as a syslog,

In order to log this message to syslog, you need to allow the syslog
process to run. If you're using a uniprocessor machine, using mdelay()
doesn't allow syslog to run during this time.

Softdog has a "testing" mode, which can be enabled by defining
ONLY_TESTING. This disables the automatic reboot, but the system
will log the timeout message.

--
Russell King ([email protected]) The developer of ARM Linux
http://www.arm.linux.org.uk/personal/aboutme.html

2001-12-11 10:54:02

by gspujar

[permalink] [raw]
Subject: Re: software watchdog




Hi,
Why is that the printk output not going to syslog although I have entry in
/etc/syslog.conf

kern.crit /var/log/pbsc.log
even after I remove the mdelay call.

Where as I am getting a log from another driver I am using. It also uses printk.

Does it mean that without using "testing" mode ( I cannot beacuse I need a
reboot) it is
not possible to get log ?

Thanks in advance
Girish





Russell King <[email protected]> on 12/11/2001 03:38:03 PM

To: Girish S Pujar/HSS@HSS
cc: [email protected], Atul Chowdhry/HSS@HSS

Subject: Re: software watchdog




On Tue, Dec 11, 2001 at 01:33:04PM +0530, [email protected] wrote:
> >>>printk(KERN_CRIT "SOFTDOG: Initiating system reboot.\n"); prints the
> message on the console.
>
> I put a delay of 5secs with mdelay, and I can see the message on the console.
> I wanted the message as a syslog,

In order to log this message to syslog, you need to allow the syslog
process to run. If you're using a uniprocessor machine, using mdelay()
doesn't allow syslog to run during this time.

Softdog has a "testing" mode, which can be enabled by defining
ONLY_TESTING. This disables the automatic reboot, but the system
will log the timeout message.

--
Russell King ([email protected]) The developer of ARM Linux
http://www.arm.linux.org.uk/personal/aboutme.html





2001-12-11 11:51:35

by Russell King

[permalink] [raw]
Subject: Re: software watchdog

On Tue, Dec 11, 2001 at 04:26:07PM +0530, [email protected] wrote:
> Why is that the printk output not going to syslog although I have entry in
> /etc/syslog.conf
>
> kern.crit /var/log/pbsc.log
> even after I remove the mdelay call.

The machine reboots before syslog gets to run.

What happens is:

printk();
reboot();

During that period, syslog is unable to run, and therefore is unable to
write the log message to disk.

> Does it mean that without using "testing" mode ( I cannot beacuse I need a
> reboot) it is not possible to get log ?

I suppose you could modify softdog to delay the reboot using it's timer
(the timer fires the first time, you check data to see if it's non-zero.
If it's not, increment watchdog_ticktock.data, and set the watchdog to
timeout in 5 seconds, return).

You should probably prevent softdog_write updating the timer if the
data field is non-zero, so once you don't change the behaviour; this
is of course dependent on your test case.

--
Russell King ([email protected]) The developer of ARM Linux
http://www.arm.linux.org.uk/personal/aboutme.html

2001-12-11 18:49:11

by Oliver Xymoron

[permalink] [raw]
Subject: Re: software watchdog

On Tue, 11 Dec 2001, Russell King wrote:

> On Tue, Dec 11, 2001 at 04:26:07PM +0530, [email protected] wrote:
> > Why is that the printk output not going to syslog although I have entry in
> > /etc/syslog.conf
> >
> > kern.crit /var/log/pbsc.log
> > even after I remove the mdelay call.
>
> The machine reboots before syslog gets to run.
>
> What happens is:
>
> printk();
> reboot();
>
> During that period, syslog is unable to run, and therefore is unable to
> write the log message to disk.
>
> > Does it mean that without using "testing" mode ( I cannot beacuse I need a
> > reboot) it is not possible to get log ?
>
> I suppose you could modify softdog to delay the reboot using it's timer
> (the timer fires the first time, you check data to see if it's non-zero.
> If it's not, increment watchdog_ticktock.data, and set the watchdog to
> timeout in 5 seconds, return).

Silly. The whole point of watchdog is to reboot a wedged machine. The
reason it's firing is presumably because the userspace watchdog
daemon didn't get a chance to touch the device, so odds that syslog would
get a chance to run are pretty slim.

If you really need a log message, get a serial console.

--
"Love the dolphins," she advised him. "Write by W.A.S.T.E.."