panic: mutex Giant owned at
.../base/head/sys/kern/kern_exit.c:131
John Baldwin
jhb at freebsd.org
Fri Jul 31 15:55:27 UTC 2009
On Friday 31 July 2009 10:11:25 am Attilio Rao wrote:
> 2009/7/31 John Baldwin <jhb at freebsd.org>:
> > On Friday 31 July 2009 2:36:46 am Marcel Moolenaar wrote:
> >> All,
> >>
> >> I got the following panic after I had to import my ZFS file system on
> >> ia64.
> >> The following panic happened when executing "zpool import":
> >>
> >> panic: mutex Giant owned at /nfs/freebsd/base/head/sys/kern/
> >> kern_exit.c:131
> >> cpuid = 0
> >> KDB: enter: panic
> >
> > It looks like ZFS doesn't actually ever check if any of the namei lookups
it
> > does internally return with Giant locked. For example, it doesn't check
> > NDHASGIANT() in lookupnameat(). Fixing this may be a bit of work as I'm
not
> > sure it is safe to drop Giant right after the namei(). If it is because
the
> > end vnode's returned are always MPSAFE then that fix is easy. If not,
then
> > Giant needs to be held until the code stops frobbing the vnode returned
from
> > the lookup.
>
> NDHASGIANT() reflects the locking of the mountpoint where the vnode is
> on so you need to size it in regard of what the namei() consumer is
> going to expect in terms of locking with such vnode/mountpoint.
True, but in this case the Giant lock that is leaked is locked in namei(). If
you have LOCKPARENT set and you lookup your / then the parent vnode may be
from a different !MPSAFE filesystem even if your filesystem is safe, yes?
--
John Baldwin
More information about the freebsd-current
mailing list