On Thu, 5 Oct 2000, John Baldwin wrote:
> You need Giant before calling kthread_exit().
Ok.
> >> After some examination I've found that two fields in the Giant mutex
> >> structure set to unexpected values:
>
> It should have died much earlier if you had INVARIANTS turned on. :( It
> looks like you are releasing a mutex you probably do not own because
> cpu_exit() (called by exit1() -> exit() -> kthread_exit()) releases Giant
> as one of its final tasks.
This is probably the bug somewhere in the diagnostic code. I have
INVARIANTS/INVARIANT_SUPPORT/DIAGNOSTIC turned on and UP machine just
panics in the mtx_exit_hard() while SMP machine silently reboots :(
> This patch is bogus I'm afraid. A contested mutex should always have a
> process waiting to grab it when it is released.
Yes, it should be bogus. But diagnostic is rather useful :)
--
Boris Popov
http://www.butya.kz/~bp/
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message