Mystical panic when RPI2 is left idle for a while
Ian Lepore
ian at freebsd.org
Tue Apr 26 15:38:17 UTC 2016
On Tue, 2016-04-26 at 10:43 +0300, Jukka A. Ukkonen wrote:
> On 04/24/16 19:41, Ian Lepore wrote:
> > On Sun, 2016-04-24 at 13:53 +0300, Jukka A. Ukkonen wrote:
> >
> > > I have a faint recollection that some others have also said
> > > their RPI2 panics when it is left idle for too long.
> > > Mine has been giving me those little surprises quite regularly,
> > > but until I got a 3,3V serial console cable I have had no
> > > chance to debug the problem any further.
> > > I hope the attached backtrace is more informative to someone
> > > else. All I was able to understand was that some process
> > > apparently tries to sleep while it is not allowed to do that.
> > > Maybe it is holding some locks or semaphores or something,
> > > and does not release them before trying to sleep.
> >
> > Based on resettodr() appearing in the backtrace, I'm going to guess
> > that you have an i2c-based realtime clock chip on the system? If
> > so,
> > that's the root of the problem, it gets automatically updated and
> > the
> > kernel can't tolerate sleeping during the process, and i2c drivers
> > usually have to sleep as part of talking to their devices.
> >
> > You can work around it by adding
> >
> > machdep.disable_rtc_set=0
> >
> > to /etc/sysctl.conf. But that disables keeping the RTC up to date
> > (I
> > think it still gets updated when you manually set the time, but I'm
> > not
> > sure of that).
> >
> > It's on my slow-motion to-do list to fix the resettodr() function,
> > but
> > doing so is complicated and affects every arch, so I never quite
> > seem
> > to find time for it.
>
> That was a splendid guess. There is a ds3231 RTC attached to
> this RPI2. Checking the current sysctl value I see this...
>
> # sysctl machdep.disable_rtc_set
> machdep.disable_rtc_set: 0
>
> Should it be the other way around, perhaps?
>
> machdep.disable_rtc_set=1
>
> At least the naming of the variable kind of seems to be hinting
> that. And after a bit of testing the box now seems to be up and
> running, though, it was totally idle for some 15 minutes or so.
> Previously roughly 15 min of idle time has been quite enough to
> drive the system to panic.
>
> --jau
>
Ooops, yeah, my mistake... it should of course be disable_rtc_set=1
-- Ian
More information about the freebsd-arm
mailing list