svn commit: r193440 - in head/sys: cddl/contrib/opensolaris/uts/common/fs/zfs kern sys

Jaakko Heinonen jh at
Sat Jun 6 09:20:02 UTC 2009


On 2009-06-04, Paul Saab wrote:
>   Support shared vnode locks for write operations when the offset is
>   provided on filesystems that support it.  This really improves mysql
>   + innodb performance on ZFS.

The panic below looks related to this commit. I think the assert is only
enabled when DEBUG_VFS_LOCKS is defined.

VOP_WRITE: 0xc3b89218 is not exclusive locked but should be
KDB: enter: lock violation
[thread pid 163 tid 100079 ]
Stopped at      kdb_enter+0x3a: movl    $0,kdb_why
db> bt
Tracing pid 163 tid 100079 td 0xc3ba4d80
kdb_enter(c0c460df,c0c460d0,c3b89218,c0c46a4a,c3b89218,...) at kdb_enter+0x3a
vfs_badlock(c3a4d7e0,e84025d0,c0d55220,c3b89218) at vfs_badlock+0x61
assert_vop_elocked(c3b89218,c0c7419a,200400,c3b89270,c3b89218,...) at assert_vop_elocked+0x55
VOP_WRITE_APV(c3a4d7e0,e84026b4,c0c47289,183,0,...) at VOP_WRITE_APV+0x98
vn_rdwr(1,c3b89218,c3f3e0c0,2ff4,0,...) at vn_rdwr+0x18e
zfs_replay_write(c38ba800,c3f3e000,0,80090502,0,...) at zfs_replay_write+0xf2
zil_replay_log_record(c3e2d800,c3dd9070,e84028e8,2fe0,0,...) at zil_replay_log_record+0x136
zil_parse(c3e2d800,c39c6eb0,c39c7260,e84028e8,2fe0,...) at zil_parse+0x1f7
zil_replay(c3b880b0,c38ba800,c38ba824,c3a4d3c0,c39d76e0,...) at zil_replay+0x184
zfsvfs_setup(c3b880b0,e84029fc,2,c38ba808,c3ba4d80,...) at zfsvfs_setup+0xec
zfs_mount(c38bd78c,0,c0c45694,3d3,0,...) at zfs_mount+0x791
vfs_donmount(c3ba4d80,0,c38c5880,c38c5880,280c8f70,...) at vfs_donmount+0x100b
nmount(c3ba4d80,e8402cf8,c,c0c3f440,c0d1ed78,...) at nmount+0x72
syscall(e8402d38) at syscall+0x2a3
Xint0x80_syscall() at Xint0x80_syscall+0x20
--- syscall (378, FreeBSD ELF32, nmount), eip = 0x28173c2b, esp = 0xbfbfd00c, ebp = 0xbfbfd048 ---
db> show vnode 0xc3b89218
vnode 0xc3b89218: tag zfs, type VREG
    usecount 1, writecount 0, refcount 1 mountedhere 0
    flags ()
    lock type zfs: SHARED (count 1)


More information about the svn-src-all mailing list