Hi,

I see a witness lock order reversal warning with soreceive.  It
happens during NFS regress tests.  In /var/log/messages is more
context from regress.

Apr 22 03:18:08 ot29 /bsd: uid 0 on 
/mnt/regress-ffs/fstest_49fd035b8230791792326afb0604868b: out of inodes
Apr 22 03:18:21 ot29 mountd[6781]: Bad exports list line /mnt/regress-nfs-server
Apr 22 03:19:08 ot29 /bsd: witness: lock order reversal:
Apr 22 03:19:08 ot29 /bsd:  1st 0xfffffd85c8ae12a8 vmmaplk (&map->lock)
Apr 22 03:19:08 ot29 /bsd:  2nd 0xffff80004c488c78 nfsnode (&np->n_lock)
Apr 22 03:19:08 ot29 /bsd: lock order data w2 -> w1 missing
Apr 22 03:19:08 ot29 /bsd: lock order "&map->lock"(rwlock) -> 
"&np->n_lock"(rrwlock) first seen at:
Apr 22 03:19:08 ot29 /bsd: #0  rw_enter+0x6d
Apr 22 03:19:08 ot29 /bsd: #1  rrw_enter+0x5e
Apr 22 03:19:08 ot29 /bsd: #2  VOP_LOCK+0x5f
Apr 22 03:19:08 ot29 /bsd: #3  vn_lock+0xbc
Apr 22 03:19:08 ot29 /bsd: #4  vn_rdwr+0x83
Apr 22 03:19:08 ot29 /bsd: #5  vndstrategy+0x2ca
Apr 22 03:19:08 ot29 /bsd: #6  physio+0x204
Apr 22 03:19:08 ot29 /bsd: #7  spec_write+0x9e
Apr 22 03:19:08 ot29 /bsd: #8  VOP_WRITE+0x45
Apr 22 03:19:08 ot29 /bsd: #9  vn_write+0x100
Apr 22 03:19:08 ot29 /bsd: #10 dofilewritev+0x14e
Apr 22 03:19:08 ot29 /bsd: #11 sys_pwrite+0x60
Apr 22 03:19:08 ot29 /bsd: #12 syscall+0x588
Apr 22 03:19:08 ot29 /bsd: #13 Xsyscall+0x128
Apr 22 03:19:08 ot29 /bsd: witness: lock order reversal:
Apr 22 03:19:08 ot29 /bsd:  1st 0xfffffd85c8ae12a8 vmmaplk (&map->lock)
Apr 22 03:19:08 ot29 /bsd:  2nd 0xffff80002ec41860 sbufrcv (&so->so_rcv.sb_lock)
Apr 22 03:19:08 ot29 /bsd: lock order "&so->so_rcv.sb_lock"(rwlock) -> 
"&map->lock"(rwlock) first seen at:
Apr 22 03:19:08 ot29 /bsd: #0  rw_enter_read+0x50
Apr 22 03:19:08 ot29 /bsd: #1  uvmfault_lookup+0x8a
Apr 22 03:19:08 ot29 /bsd: #2  uvm_fault_check+0x36
Apr 22 03:19:08 ot29 /bsd: #3  uvm_fault+0xfb
Apr 22 03:19:08 ot29 /bsd: #4  kpageflttrap+0x158
Apr 22 03:19:08 ot29 /bsd: #5  kerntrap+0x94
Apr 22 03:19:08 ot29 /bsd: #6  alltraps_kern_meltdown+0x7b
Apr 22 03:19:08 ot29 /bsd: #7  copyout+0x57
Apr 22 03:19:08 ot29 /bsd: #8  soreceive+0x99a
Apr 22 03:19:08 ot29 /bsd: #9  recvit+0x1fd
Apr 22 03:19:08 ot29 /bsd: #10 sys_recvfrom+0xa4
Apr 22 03:19:08 ot29 /bsd: #11 syscall+0x588
Apr 22 03:19:08 ot29 /bsd: #12 Xsyscall+0x128
Apr 22 03:19:08 ot29 /bsd: lock order data w1 -> w2 missing
Apr 22 03:22:27 ot29 /bsd: uid 0 on 
/mnt/regress-nfs-client/fstest_3372ae0ca77c9470440ef577e4f5e16e: file system 
full
Apr 22 03:22:30 ot29 /bsd: uid 0 on 
/mnt/regress-nfs-client/fstest_632a6ba698de06560b4c93617b00808d: out of inodes

According to timestamp it is regress/sys/ffs.
    make -C /usr/src/regress/sys/ffs/nfs run-chmod
triggers it.

I already reported in a thread on tech@, but the issue is independent
of the diff over there.  Let's start a fresh discussion.

bluhm

Reply via email to