Re: watchdog timer programming

From: mike tancsa <mike_at_sentex.net>
Date: Fri, 27 Sep 2024 14:15:23 UTC
On 9/27/2024 9:55 AM, Stephane Rochoy wrote:
>
> mike tancsa <mike@sentex.net> writes:
>
>> I also started to play around with the non hardware based watchdog
>> timer.  For some reason, I cant get the box to reboot. It just prints a
>> stack trace and continues
>>
>> This is with no driver loaded.
>>
>> 0{t}# watchdogd --softtimeout-action panic -t 5
>> 0{t}# ps -auxww | grep dog
>> root     1487   0.4  0.2   12820  12920  -  S<s  09:03 0:00.01 watchdogd
>> --softtimeout-action panic -t 5
>> root     1489   0.0  0.0   12808   2636 u0  S+   09:03 0:00.00
>> grep dog
>> 0{t}# kill -9 1487
>> 0{t}# KDB: stack backtrace:
>> #0 0xffffffff80b7fefd at kdb_backtrace+0x5d
>> #1 0xffffffff80abec93 at hardclock+0x103
>> #2 0xffffffff80abfe8b at handleevents+0xab
>> #3 0xffffffff80ac0b7c at timercb+0x24c
>> #4 0xffffffff810d0ebb at lapic_handle_timer+0xab
>> #5 0xffffffff80fd8a71 at Xtimerint+0xb1
>> #6 0xffffffff804b3685 at acpi_cpu_idle+0x2c5
>> #7 0xffffffff80fc48f6 at cpu_idle_acpi+0x46
>> #8 0xffffffff80fc49ad at cpu_idle+0x9d
>> #9 0xffffffff80b67bb6 at sched_idletd+0x576
>> #10 0xffffffff80aecf7f at fork_exit+0x7f
>> #11 0xffffffff80fd7dae at fork_trampoline+0xe
>>
>> 0{t}#
>>
>> Should it not reboot at this point ?
>
> I don't think so. `kdb_backtrace` being involved let me think the
> kernel was compiled with KDB. You should play with ddb(8) to set a
> default action like reset when entering kdb.
>
Hmmm, Its a GENERIC kernel,

# Debugging support.  Always need this:
options         KDB                     # Enable kernel debugger support.
options         KDB_TRACE               # Print a stack trace for a panic.

Do you know off hand how to set the system to just reboot ? The ddb man 
page seems to imply I need options DDB as well, which is not in GENERIC 
in order to set script actions.

# sysctl -a debug.kdb
debug.kdb.enter_securelevel: 0
debug.kdb.alt_break_to_debugger: 0
debug.kdb.break_to_debugger: 0
debug.kdb.stack_overflow: 0
debug.kdb.trap_code: 0
debug.kdb.trap: 0
debug.kdb.panic_str:
debug.kdb.panic: 0
debug.kdb.enter: 0
debug.kdb.current:
debug.kdb.available:

     ---Mike