Date: Fri, 16 Dec 2016 15:26:55 -0800 From: "Steven G. Kargl" <kargl@troutmask.apl.washington.edu> To: John Baldwin <jhb@freebsd.org> Cc: Mark Johnston <markj@freebsd.org>, kargl@uw.edu, freebsd-current@freebsd.org, kib@freebsd.org Subject: Re: Revision 309657 to stack_machdep.c renders unbootable system Message-ID: <20161216232655.GA12842@troutmask.apl.washington.edu> In-Reply-To: <1848178.kLUBJlL36D@ralph.baldwin.cx> References: <20161214194848.GA881@troutmask.apl.washington.edu> <20161214234804.GA26443@troutmask.apl.washington.edu> <20161215005012.GA84222@wkstn-mjohnston.west.isilon.com> <1848178.kLUBJlL36D@ralph.baldwin.cx>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Dec 16, 2016 at 03:19:09PM -0800, John Baldwin wrote: > > So the hack in pause() is probably not as necessary now. In particular, I > think we only need it for thread0, not for other threads. The patch below > worked for me with SPEW's config: > > Index: kern_synch.c > =================================================================== > --- kern_synch.c (revision 310128) > +++ kern_synch.c (working copy) > @@ -321,7 +321,8 @@ pause_sbt(const char *wmesg, sbintime_t sbt, sbint > if (sbt == 0) > sbt = tick_sbt; > > - if (cold || kdb_active || SCHEDULER_STOPPED()) { > + if ((cold && curthread == &thread0) || kdb_active || > + SCHEDULER_STOPPED()) { > /* > * We delay one second at a time to avoid overflowing the > * system specific DELAY() function(s): > I'll give your patch a try on Monday. I'm heading out the door for the weekend, and the system that has problems sits in my office. System is currently rebuilding firefox-50, which seems to have a penchant for becoming wedged. An unkillable program consuming ~1 GB of memory. :( -- Steve http://troutmask.apl.washington.edu/~kargl/ 2. https://www.youtube.com/watch?v=Py6d6o2jbaE 1. https://www.youtube.com/watch?v=6hwgPfCcpyQ
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20161216232655.GA12842>