[rfc] [patch] do not stop watchdog on shutdown
Andriy Gapon
avg at FreeBSD.org
Tue Dec 17 22:01:46 UTC 2013
on 17/12/2013 20:53 Maksim Yevmenkin said the following:
> hello,
>
> would anyone object to this patch?
>
> max
>
> Index: src/etc/rc.d/watchdogd
> ===================================================================
> --- src/etc/rc.d/watchdogd (revision 2999)
> +++ src/etc/rc.d/watchdogd (working copy)
> @@ -39,4 +39,7 @@
> pidfile="/var/run/${name}.pid"
>
> load_rc_config $name
> +
> +sig_stop="${watchdogd_sig_stop:-TERM}"
> +
> run_rc_command "$1"
I wonder if anyone could object to this rather generic (and NOP by default) change.
I see your intent, but a few words about it would not hurt :-)
BTW, for a while now we have some support for interacting with the watchdog(9)
from within the kernel. I have the following local patch / hack that makes use
of that support:
commit b64c5e855420f2d905a04f69fad5de116e8ffae5
Author: Andriy Gapon <avg at icyb.net.ua>
Date: Fri Nov 25 10:00:59 2011 +0200
[test] arm the watchdog before going into the final shutdown/reboot step
... to preclude hanging on that step.
Note: halt assumes the limbo, so no watchdog for that case.
diff --git a/sys/kern/kern_shutdown.c b/sys/kern/kern_shutdown.c
index eaa78b8e..88afaa9 100644
--- a/sys/kern/kern_shutdown.c
+++ b/sys/kern/kern_shutdown.c
@@ -444,6 +444,11 @@ kern_reboot(int howto)
if ((howto & (RB_HALT|RB_DUMP)) == RB_DUMP && !cold && !dumping)
doadump(TRUE);
+ if ((howto & RB_HALT) != 0)
+ wdog_kern_pat(0);
+ else
+ wdog_kern_pat(WD_TO_32SEC + 1);
+
/* Now that we're going to really halt the system... */
EVENTHANDLER_INVOKE(shutdown_final, howto);
Admittedly, there is a gap between userland watchdog being stopped and kernel
watchdog taking over. I wish that we had 'proper' integration between them,
with proper hand-off, etc.
--
Andriy Gapon
More information about the freebsd-current
mailing list