diff --git a/TODO.md b/TODO.md index b8544974..dae633b4 100644 --- a/TODO.md +++ b/TODO.md @@ -234,14 +234,29 @@ Watchdog Support for monitoring the health of the system and its processes. -* Add support for a `/dev/watchdog` plugin to replace `watchdogd` -* Integrate system supervisor to optionally reboot the system when a - process stops responding, or when a respawn limit has been reached, - as well as when system load gets too high. -* API for processes to register with the watchdog. - - Deeper monitoring of a process' main loop +* Add support for a `/dev/watchdog` built-in to replace both the BusyBox + watchdogd and my own refreshed uClinux-dist adaptation, + [watchdogd](https://github.com/troglobit/watchdogd) +* Add a system supervisor (pmon) to optionally reboot the system when a + process stops responding, or when a respawn limit has been reached, as + well as when system load gets too high. For details on UNIX loadavg, + see http://stackoverflow.com/questions/11987495/linux-proc-loadavg + - Default to 0.7 as MAX recommended load before warning and 0.9 reboot +* API for processes to register with the watchdog, libwdt + - Deeper monitoring of a process' main loop by instrumenting - If a process is not heard from within its subscribed period time reboot system or restart process. + - Add client libwdt library, inspired by old Westermo API and the + [libwdt] API published in the [Fritz!Box source dump], take for + instance the `fritzbox7170-source-files-04.87-tar.gz` drop and see + the `GPL-release_kernel.tgz` in `drivers/char/avm_new/` for the + kernel driver, and the `LGPL-GPL-release_target_tools.tgz` in `wdt/` + for the userland API. + - When a client process (a standard app/daemon instrumented with + libwdt calls in its main loop) registers with the watchdog, we raise + the RT priority to 98 (just below the kernel watchdog in prio). + This to ensure that system monitoring goes before anything else in + the system. * Separate `/etc/watchdog.conf` configuration file, or a perhaps support for `/etc/finit.d/PLUGIN.conf`? * Support enable/disable watchdog features: @@ -266,6 +281,9 @@ Investigation * [FHS changes](http://askubuntu.com/questions/57297/why-has-var-run-been-migrated-to-run) affecting runtime status, plugins, etc. +[libwdt]: http://www.wehavemorefun.de/fritzbox/Libwdt.so +[Fritz!Box source dump]: ftp://ftp.avm.de/fritz.box/fritzbox.fon_wlan_7170/x_misc/opensrc/ +