I made the following change to Xenomai (version 2.3.2, but it could also 
be applied to 2.4 as the watchdog code has not been changed).

The watchdog timeout is fixed at 4 seconds. For us this is a problem as 
there are some processes that take more time than this.

I made the following change to allow this to be changed through the 
Linux kernel configuration. The value is configurable between 1 and 60 
seconds.

Below is a patchfile that implements this change. Please let me know if 
you have comments on this, or if there are problems with this change.

================
diff -u -r org/xenomai-2.3.2/ksrc/nucleus/Kconfig 
xenomai-2.3.2/ksrc/nucleus/Kconfig
--- org/xenomai-2.3.2/ksrc/nucleus/Kconfig      2007-07-06 
18:42:14.000000000 +0200
+++ xenomai-2.3.2/ksrc/nucleus/Kconfig  2007-09-04 14:13:41.000000000 +0200
@@ -172,6 +172,17 @@
        behalf of the timer tick handler, thus is only active after
        the timer has been started.
 
+config XENO_OPT_WATCHDOG_PERIOD
+       depends on XENO_OPT_WATCHDOG
+       int "Watchdog period (s)"
+       default 4
+    range 1 60
+       help
+
+    Nr of seconds of uninterrupted real-time activity after which
+    the watchdog triggers.
+
+
 menu "Timing"
 
 config XENO_OPT_TIMING_PERIODIC
diff -u -r org/xenomai-2.3.2/ksrc/nucleus/pod.c 
xenomai-2.3.2/ksrc/nucleus/pod.c
--- org/xenomai-2.3.2/ksrc/nucleus/pod.c        2007-07-07 
10:18:57.000000000 +0200
+++ xenomai-2.3.2/ksrc/nucleus/pod.c    2007-09-04 14:06:35.000000000 +0200
@@ -2925,7 +2925,7 @@
        return nkpod->svctable.faulthandler(fltinfo);
 }
 
-#ifdef CONFIG_XENO_OPT_WATCHDOG
+#if (defined CONFIG_XENO_OPT_WATCHDOG) && 
(CONFIG_XENO_OPT_WATCHDOG_PERIOD > 0)
 
 /*!
  * @internal
@@ -2948,7 +2948,7 @@
                return;
        }
 
-       if (unlikely(++sched->wd_count >= 4)) {
+       if (unlikely(++sched->wd_count >= 
CONFIG_XENO_OPT_WATCHDOG_PERIOD)) {
                xnltt_log_event(xeno_ev_watchdog, thread->name);
                xnprintf("watchdog triggered -- killing runaway thread 
'%s'\n",
                         thread->name);

================

Kind regards,
    Johan Borkhuis


_______________________________________________
Xenomai-core mailing list
Xenomai-core@gna.org
https://mail.gna.org/listinfo/xenomai-core

Reply via email to