NMI watchdog functionality on Freebsd
Ed Maste
emaste at freebsd.org
Wed Jan 23 20:14:51 UTC 2013
On 23 January 2013 11:57, Ian Lepore <ian at freebsd.org> wrote:
>
> But adding a real hardware watchdog that fires on a slightly longer
> timeout than the NMI watchdog gives you the best of everything: you get
> information if it's possible to produce it, and you get a real hardware
> reset shortly thereafter if producing the info fails.
Yes, this is a great option if supported by hardware.
Some Supermicro motherboards (like the X8STi) have two independent
watchdogs, and one of them has a jumper to choose between NMI and
reset upon expiry. In addition, the wbwd(4) driver has a sysctl to
override the normal timeout to make the dual-stage watchdog possible:
dev.wbwd.0.timeout_override
This variable allows to program the timer to a value independent
on the one provided by the watchdog(4) framework while still
relying on the regular updates from e.g. watchdogd(8). This is
particularly useful if your system provides multiple watchdogs
and you want them to fire in a special sequence to trigger an NMI
after a shorter period than the reset timeout for example. The
value set must not be lower than the sleep time of watchdogd(8).
A value of 0 disables this feature and the timeout value provided
by watchdog(4) will be used.
I hope this capability moves into the watchdog infrastructure rather
than existing as a driver-specific kluge.
More information about the freebsd-hackers
mailing list