diff options
author | attilio <attilio@FreeBSD.org> | 2011-04-28 16:02:05 +0000 |
---|---|---|
committer | attilio <attilio@FreeBSD.org> | 2011-04-28 16:02:05 +0000 |
commit | d685681d59c6feed493660adbeb6140c4fdab936 (patch) | |
tree | a77ab94179765e48d467fa200110ca442367a27e /sys/arm | |
parent | 3f732e147ff863c0e7572174a1a11f2e1f7c7053 (diff) | |
download | FreeBSD-src-d685681d59c6feed493660adbeb6140c4fdab936.zip FreeBSD-src-d685681d59c6feed493660adbeb6140c4fdab936.tar.gz |
Add the watchdogs patting during the (shutdown time) disk syncing and
disk dumping.
With the option SW_WATCHDOG on, these operations are doomed to let
watchdog fire, fi they take too long.
I implemented the stubs this way because I really want wdog_kern_*
KPI to not be dependant by SW_WATCHDOG being on (and really, the option
only enables watchdog activation in hardclock) and also avoid to
call them when not necessary (avoiding not-volountary watchdog
activations).
Sponsored by: Sandvine Incorporated
Discussed with: emaste, des
MFC after: 2 weeks
Diffstat (limited to 'sys/arm')
-rw-r--r-- | sys/arm/arm/dump_machdep.c | 8 | ||||
-rw-r--r-- | sys/arm/arm/minidump_machdep.c | 8 |
2 files changed, 16 insertions, 0 deletions
diff --git a/sys/arm/arm/dump_machdep.c b/sys/arm/arm/dump_machdep.c index 5a07dca..cbff96b 100644 --- a/sys/arm/arm/dump_machdep.c +++ b/sys/arm/arm/dump_machdep.c @@ -27,6 +27,8 @@ #include <sys/cdefs.h> __FBSDID("$FreeBSD$"); +#include "opt_watchdog.h" + #include <sys/param.h> #include <sys/systm.h> #include <sys/conf.h> @@ -35,6 +37,9 @@ __FBSDID("$FreeBSD$"); #include <sys/kernel.h> #include <sys/proc.h> #include <sys/kerneldump.h> +#ifdef SW_WATCHDOG +#include <sys/watchdog.h> +#endif #include <vm/vm.h> #include <vm/pmap.h> #include <machine/elf.h> @@ -189,6 +194,9 @@ cb_dumpdata(struct md_pa *mdp, int seqnr, void *arg) cpu_tlb_flushID_SE(0); cpu_cpwait(); } +#ifdef SW_WATCHDOG + wdog_kern_pat(WD_LASTVAL); +#endif error = dump_write(di, (void *)(pa - (pa & L1_ADDR_BITS)),0, dumplo, sz); if (error) diff --git a/sys/arm/arm/minidump_machdep.c b/sys/arm/arm/minidump_machdep.c index c21b183..a858709 100644 --- a/sys/arm/arm/minidump_machdep.c +++ b/sys/arm/arm/minidump_machdep.c @@ -29,6 +29,8 @@ #include <sys/cdefs.h> __FBSDID("$FreeBSD$"); +#include "opt_watchdog.h" + #include <sys/param.h> #include <sys/systm.h> #include <sys/conf.h> @@ -36,6 +38,9 @@ __FBSDID("$FreeBSD$"); #include <sys/kernel.h> #include <sys/kerneldump.h> #include <sys/msgbuf.h> +#ifdef SW_WATCHDOG +#include <sys/watchdog.h> +#endif #include <vm/vm.h> #include <vm/pmap.h> #include <machine/pmap.h> @@ -138,6 +143,9 @@ blk_write(struct dumperinfo *di, char *ptr, vm_paddr_t pa, size_t sz) counter &= (1<<22) - 1; } +#ifdef SW_WATCHDOG + wdog_kern_pat(WD_LASTVAL); +#endif if (ptr) { error = dump_write(di, ptr, 0, dumplo, len); if (error) |