Strange panic on ppc64
Konstantin Belousov
kostikbel at gmail.com
Tue Nov 12 20:51:48 UTC 2013
On Tue, Nov 12, 2013 at 08:32:31AM -0800, Justin Hibbits wrote:
> The log is attached. I'm not sure what exactly is going on here. The
> conditions were: building something on zfs, while also accessing files over
> NFS. It seems each of those individually is fine, but doing both it brings
> my system down. I _think_ the actual panic message (recursed on
> non-recursive mutex) is a red herring, since it already trapped in the
> kernel, twice. Any clues? It's 100% reproducible by me.
>
This does not seems related to NFS or ZFS proper. What happens is
that tc_windup() executing in the interupt context decided to enter
a debugger. I am not sure why the debugger is entered.
Apart from this, the situation is clear:
the interrupt happens while the referenced mutex was owned. The debugger
is entered, and tries to read a char from keyboard, which is USB. For
USB to function, it has to access a lot of the kernel services, in
particular, busdma, which, in turn, requires some pmap calls, and you
end up accessing the same mutex.
The bug there is that code executed from interrupt or debugger context
must not lock mutexes, or generally, call into top-half of the kernel
(now top half is essentially the whole kernel). I am not sure if
USB could ever work in such mode.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 834 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/freebsd-ppc/attachments/20131112/d12f7e05/attachment.sig>
More information about the freebsd-ppc
mailing list