Re: zfs: Fatal trap 12: page fault while in kernel mode



on 29/07/2009 17:36 Andriy Gapon said the following:
on 29/07/2009 17:10 Thomas Backman said the following:
[snip]
(kgdb) fr 11
[snip]
(kgdb) p *sx
$8 = {lock_object = {lo_name = 0xffffffff80b5634c "zp->z_lock", lo_flags
= 40894464 [0x2700000, btw], lo_data = 0, lo_witness = 0x0},
sx_lock = 6}

... as you might notice, I'm mostly clueless as to what I'm doing here. :o
Hope that helps (a bit), though.

Yes, it does and a lot.
sx_lock = 6 means that this sx lock is destroyed:
#define SX_LOCK_DESTROYED \
(SX_LOCK_SHARED_WAITERS | SX_LOCK_EXCLUSIVE_WAITERS)

And lo_name tells that this is zp->z_lock.
This lock is destroyed in zfs_znode_cache_destructor.
Not enough knowledge for me to proceed further.

So I guess that this is a case when zfs_znode_delete() was called on znode that
was still referenced from some vnode. When the vnode gets reclaimed we get this
problem.
Could you please examine vp in frame 15 or 16?

--
Andriy Gapon
_______________________________________________
freebsd-current@xxxxxxxxxxx mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscribe@xxxxxxxxxxx"



Relevant Pages

  • Re: zfs: Fatal trap 12: page fault while in kernel mode
    ... I'm mostly clueless as to what I'm doing here. ... This lock is destroyed in zfs_znode_cache_destructor. ... yeah. ...
    (freebsd-current)
  • Re: zfs: Fatal trap 12: page fault while in kernel mode
    ... I'm mostly clueless as to what I'm doing here. ... This lock is destroyed in zfs_znode_cache_destructor. ... Andriy Gapon ...
    (freebsd-current)
  • Re: nfsd hung on ufs vnode lock
    ... the exclusive lock was for a cache directory shared by about ... this vnode is the directory vnode that is the parent ... interlock is not held when clearing the ...
    (freebsd-stable)
  • Re: ffs snapshot lockup
    ... If the buffer lock has waiters after the buffer has changed identity then ... struct buf_queue_head { ... retrieving revision 1.106 ... * is currently suspending/suspended and vnode has been accessed. ...
    (freebsd-stable)
  • Re: [PATCH] Make udf(4) MPSAFE and use shared lookups
    ... Set VV_ROOT in udf_vgetif we ever return a vnode instead of doing ... Allow lock recursion. ... Tracing pid 977 tid 100087 td 0xc43b4d80 ... lock type udf: EXCL by thread 0xc43b4d80 ...
    (freebsd-current)