On 12-Mar-01 Alexander N. Kabaev wrote:
> Do you have WITNESS_SKIPSPIN option in your kernel config?
> 
> Here is what supposedly causing the trouble:
> 
> a) the process p_spinlocks variable is initialized to one in fork1 during 
>    the process creation
> b) the sched_lock is released later in fork_exit, but the process'
>    p_spinlocks field is not decreased because sched_lock is not tracked by
> the
>    witness subsystem
> b) process tried to grab Giant but sees p_spinlocks > 0 ... instant panic :)

c) As part of the new witness code, move p_spinlocks (well, a variation thereof)
   to be a per-CPU variable.
 
> The quick and dirty fix is to either set debug.witness_skipspin=0 in
> /boot/loader.conf or modify witness_enter function to ignore p_skipspin
> counter
> if debug.witness_skipspin is non-zero.

Just don't use the skipspin stuff, it shouldn't hurt at all.  The new witness
code will hopefully be in by the end of the week.  *crosses fingers*

-- 

John Baldwin <[EMAIL PROTECTED]> -- http://www.FreeBSD.org/~jhb/
PGP Key: http://www.baldwin.cx/~john/pgpkey.asc
"Power Users Use the Power to Serve!"  -  http://www.FreeBSD.org/

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to