Skip site navigation (1)Skip section navigation (2)
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>