Software watchdog patch

From: Sean Kelly <smkelly_at_zombie.org>
Date: Fri, 20 Jun 2003 21:47:07 -0500
Greetings.

I've been working on a patch which adds software watchdog to the FreeBSD
5.1-CURRENT kernel. Below is an URL to the patch to my work, and I'd
appreciate it if anybody interested in this venture would give me their
feedback on what I've got and also help debug it.

The patch is available here: http://www.sean-kelly.org/watchdog.diff

My watchdog patch is two pieces. One half is a kernel patch which adds the
watchdog timer checker to hardclock() in sys/kern/kern_clock.c. It also
adds a watchdog_fire() function which performs various things on a watchdog
timeout.

The userland half of the patch adds a watchdogd daemon which periodically
wakes up from a sleep to "notify" the kernel that the userland is still
intact.

This patch also adds a watchdogd(8) manpage, a watchdog(4) manpage, and an
/etc/rc.d/watchdogd startup script.

In order to utilize the watchdog, you must build a kernel with
     options WATCHDOG

It is also advised that you enable watchdogd to /etc/rc.conf:
     watchdogd_enable="YES"


Three new sysctls are added:
   debug.watchdog.enabled
      When this is non-zero, the watchdog is active and hardclock() is
      verifying that the watchdog timer has not timed out.

   debug.watchdog.timeout: 20
      This is the number of seconds the watchdog can go without a timer
      update.

   debug.watchdog.reset: 0
      When this sysctl is "touched" (read/write), it resets the
      watchdog_ticks kernel variable to the value of ticks. When
      (ticks - watchdog_ticks) > watchdog.timeout seconds, the watchdog
      fires by calling watchdog_fire().

When the watchdog fires (watchdog_fire()), different things happen
depending on the kernel configuration. First, interrupt counts are dumped
to the console. Then, if your kernel was built with DDB support, you will
get a backtrace and be dropped to the DDB prompt. If your kernel has no DDB
support, your kernel will panic and presumably reboot itself.

Note that I attempted to stick to style(9). If I did not, please point out
my mistakes and I'll be happy to fix them. Also note that this is my first
venture writing manpages from scratch, so feel free to tear them apart and
mock me. However, I did read mdoc(7) and check them for warnings.

I look forward to any feedback, whether positive or negative.

-- 
Sean Kelly         | PGP KeyID: D2E5E296
smkelly_at_zombie.org | http://www.zombie.org

Received on Fri Jun 20 2003 - 17:47:21 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:12 UTC