Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 19 Dec 2016 10:39:58 -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:  <20161219183958.GA876@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):
> 
> 

John, 

The above patch fixes the boot issue for me.  Thanks for the
quick response.

-- 
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?20161219183958.GA876>