Date: Wed, 18 Dec 2013 00:00:40 +0200 From: Andriy Gapon <avg@FreeBSD.org> To: Maksim Yevmenkin <maksim.yevmenkin@gmail.com>, "current@freebsd.org" <current@FreeBSD.org> Subject: Re: [rfc] [patch] do not stop watchdog on shutdown Message-ID: <52B0C988.5010507@FreeBSD.org> In-Reply-To: <CAFPOs6oyAs%2BDvcrNM8GnWNrzEVpkkNBTrHWzb-OSO90MefnB9Q@mail.gmail.com> References: <CAFPOs6oyAs%2BDvcrNM8GnWNrzEVpkkNBTrHWzb-OSO90MefnB9Q@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
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@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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?52B0C988.5010507>
