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>