Date: Fri, 27 Sep 2019 10:21:55 -0600 From: Warner Losh <imp@bsdimp.com> To: mike tancsa <mike@sentex.net> Cc: freebsd-embedded <freebsd-embedded@freebsd.org> Subject: Re: watchdogd stat location Message-ID: <CANCZdfp6bym5b6eFXFH0MxjYsAX%2B1Bi9fGXgp7sFM206zmsveQ@mail.gmail.com> In-Reply-To: <5eba25eb-9ba4-0c93-27c8-e834491298ad@sentex.net> References: <5eba25eb-9ba4-0c93-27c8-e834491298ad@sentex.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Sep 27, 2019 at 9:36 AM mike tancsa <mike@sentex.net> wrote:
> We sometimes run into an issue where our embedded devices that boot off
> a read only SD card, hang with a controller error. Its not clear if
> this is a BIOS/firmware/SDCard or driver bug issue. Its pretty
> infrequent, but annoying enough that I started to dig to see why the box
> is not rebooting via the hardware watchdog. It seems to fail to reboot
> the box as the stat that it does on the filesystem is off the md backed
> /etc which is not impacted. I know I could run an external program, but
> would it be safer to change the default directory where the stat is done
> to something that is generally not mounted via ramdisk ?
>
> eg.
>
>
> diff -u watchdogd.c.orig watchdogd.c
> --- watchdogd.c.orig 2019-09-27 10:51:04.273113000 -0400
> +++ watchdogd.c 2019-09-27 10:51:23.592200000 -0400
> @@ -365,7 +365,7 @@
> if (test_cmd != NULL)
> failed = system(test_cmd);
> else
> - failed = stat("/etc", &sb);
> + failed = stat("/boot", &sb);
>
> error = watchdog_getuptime(&ts_end);
> if (error) {
>
I think this is good.
Warner
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CANCZdfp6bym5b6eFXFH0MxjYsAX%2B1Bi9fGXgp7sFM206zmsveQ>
