cvs commit: src/sys/kern kern_mutex.c
John Baldwin
jhb at FreeBSD.org
Mon Sep 12 12:42:54 PDT 2005
On Friday 02 September 2005 04:57 pm, Scott Long wrote:
> John Baldwin wrote:
> > jhb 2005-09-02 20:21:49 UTC
> >
> > FreeBSD src repository
> >
> > Modified files:
> > sys/kern kern_mutex.c
> > Log:
> > - Add an assertion to panic if one tries to call mtx_trylock() on a
> > spin mutex.
>
> Explaining exactly why this is bad, either in a commit log, in a
> manpage, or in source code comments would be really nice. The pitfalls
> are not immediately obvious to the casual observer.
I can update the manpage. mtx_trylock() has never worked for spin mutexes
since its import from BSD/OS. If we ever wanted one (I can think of one
useful case in the idle loop perhaps) then it would be called
mtx_trylock_spin() anyways.
> > - Don't panic if a spin lock is held too long inside _mtx_lock_spin()
> > if panicstr is set (meaning that we are already in a panic). Just keep
> > spinning forever instead.
>
> If panicstr is set, shouldn't all CPUs have already been sent an NMI?
> This seems like a step backwards in reliability.
They should not recursively panic, yes, but in practice they do and once they
do you can't get into the debugger. Just ask Kris if this is an improvement.
--
John Baldwin <jhb at FreeBSD.org> <>< http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve" = http://www.FreeBSD.org
More information about the cvs-src
mailing list