login: witness: lock order reversal: 1st 0xfffffd807effe720 vmmaplk (&map->lock) @ /syzkaller/managers/pf/kernel/sys/uvm/uvm_fault.c:1444 2nd 0xfffffd806e30e918 inode (&ip->i_lock) @ /syzkaller/managers/pf/kernel/sys/ufs/ufs/ufs_vnops.c:1547 lock order "&ip->i_lock"(rrwlock) -> "&map->lock"(rwlock) first seen at: #0 witness_checkorder+0x6cd sys/kern/subr_witness.c:906 #1 _rw_enter+0xd5 #2 vm_map_lock_ln+0x164 sys/uvm/uvm_map.c:5261 #3 uvm_map+0x2fb sys/uvm/uvm_map.c:1220 #4 km_alloc+0x1b7 sys/uvm/uvm_km.c:908 #5 pool_multi_alloc_ni+0xe8 sys/kern/subr_pool.c:1692 #6 pool_p_alloc+0x74 pool_allocator_alloc sys/kern/subr_pool.c:1606 [inline] #6 pool_p_alloc+0x74 sys/kern/subr_pool.c:927 #7 pool_do_get+0x12b sys/kern/subr_pool.c:718 #8 pool_get+0x106 sys/kern/subr_pool.c:587 #9 ufsdirhash_build+0x420 sys/ufs/ufs/ufs_dirhash.c:184 #10 ufs_lookup+0x2c1 sys/ufs/ufs/ufs_lookup.c:200 #11 VOP_LOOKUP+0x67 sys/kern/vfs_vops.c:90 #12 vfs_lookup+0x556 sys/kern/vfs_lookup.c:523 #13 namei+0x4b2 sys/kern/vfs_lookup.c:224 #14 start_init+0xec check_console sys/kern/init_main.c:600 [inline] #14 start_init+0xec sys/kern/init_main.c:640 #15 proc_trampoline+0x1c lock order "&map->lock"(rwlock) -> "&ip->i_lock"(rrwlock) first seen at: #0 witness_checkorder+0x6cd sys/kern/subr_witness.c:906 #1 _rw_enter+0xd5 #2 _rrw_enter+0x60 sys/kern/kern_rwlock.c:410 #3 VOP_LOCK+0x57 sys/kern/vfs_vops.c:602 #4 vn_lock+0x6e sys/kern/vfs_vnops.c:549 #5 uvn_io+0x2fc sys/uvm/uvm_vnode.c:1188 #6 uvn_get+0x236 sys/uvm/uvm_vnode.c:1048 #7 uvm_fault+0x1312 sys/uvm/uvm_fault.c:1023 #8 uvm_fault_wire+0x70 sys/uvm/uvm_fault.c:1295 #9 uvm_map_pageable_wire+0x31d sys/uvm/uvm_map.c:2266 #10 sys_mlock+0x18b sys/uvm/uvm_mmap.c:739 #11 syscall+0x5b8 mi_syscall sys/sys/syscall_mi.h:99 [inline] #11 syscall+0x5b8 sys/arch/amd64/amd64/trap.c:574 #12 Xsyscall+0x128 Stopped at db_enter+0x18: addq $0x8,%rsp ddb{0}> ddb{0}> set $lines = 0 ddb{0}> set $maxwidth = 0 ddb{0}> show panic the kernel did not panic ddb{0}> trace db_enter() at db_enter+0x18 sys/arch/amd64/amd64/db_interface.c:399 witness_checkorder(fffffd806e30e918,9,ffffffff81f485bf,60b,0) at witness_checkorder+0x12ff witness_debugger sys/kern/subr_witness.c:2650 [inline] witness_checkorder(fffffd806e30e918,9,ffffffff81f485bf,60b,0) at witness_checkorder+0x12ff sys/kern/subr_witness.c:1122 _rw_enter(fffffd806e30e908,81,ffffffff81f485bf,60b) at _rw_enter+0xd5 _rrw_enter(fffffd806e30e908,81,ffffffff81f485bf,60b) at _rrw_enter+0x60 sys/kern/kern_rwlock.c:410 VOP_LOCK(fffffd807ddb9308,81) at VOP_LOCK+0x57 sys/kern/vfs_vops.c:602 vn_lock(fffffd807ddb9308,81) at vn_lock+0x6e sys/kern/vfs_vnops.c:549 uvn_io(fffffd807d8e59f0,ffff800020c44fe0,1,2,0) at uvn_io+0x2fc sys/uvm/uvm_vnode.c:1188 uvn_get(fffffd807d8e59f0,1000,ffff800020c45100,ffff800020c45114,0,1) at uvn_get+0x236 sys/uvm/uvm_vnode.c:1048 uvm_fault(fffffd807effe708,20001000,2,1) at uvm_fault+0x1312 sys/uvm/uvm_fault.c:1023 uvm_fault_wire(fffffd807effe708,20001000,20002000,1) at uvm_fault_wire+0x70 sys/uvm/uvm_fault.c:1295 uvm_map_pageable_wire(fffffd807effe708,fffffd806c722398,fffffd8065339810,ffff800002b66000,0,0) at uvm_map_pageable_wire+0x31d sys/uvm/uvm_map.c:2266 sys_mlock(ffff800020b759e0,ffff800020c45498,ffff800020c45480) at sys_mlock+0x18b sys/uvm/uvm_mmap.c:739 syscall(ffff800020c45530) at syscall+0x5b8 mi_syscall sys/sys/syscall_mi.h:99 [inline] syscall(ffff800020c45530) at syscall+0x5b8 sys/arch/amd64/amd64/trap.c:574 Xsyscall(6,0,ffffffffffffff99,0,2,f487ba5c010) at Xsyscall+0x128 end of kernel end trace frame: 0xf4b30520c90, count: -14 ddb{0}> show registers rdi 0x3 rsi 0x3ffff acpi_pdirpa+0x2be67 rbp 0xffff800020c44c10 rbx 0x3 rdx 0x40000 acpi_pdirpa+0x2be68 rcx 0xffff800002b66000 rax 0xffff80000091fdc0 r8 0xffffffff8103d6e8 witness_checkorder+0x12d8 r9 0x5 r10 0x3 r11 0x7963c7f508c2afa9 r12 0xffffffff81f485bf cmd0646_9_tim_udma+0x455ed r13 0xfffffd8002635c30 r14 0xffffffff822d15f0 w_lodata+0x43760 r15 0xfffffd800263d890 rip 0xffffffff81cbd0d8 db_enter+0x18 cs 0x8 rflags 0x246 rsp 0xffff800020c44c00 ss 0x10 db_enter+0x18: addq $0x8,%rsp ddb{0}> show proc PROC (syz-executor.1) pid=143323 stat=onproc flags process=0 proc=4000000 pri=62, usrpri=62, nice=20 forw=0xffffffffffffffff, list=0xffff800020b74bd0,0xffff800020b75540 process=0xffff800020b8c9f0 user=0xffff800020c40000, vmspace=0xfffffd807effe708 estcpu=12, cpticks=1, pctcpu=0.0 user=0, sys=0, intr=0 ddb{0}> ps PID TID PPID UID S FLAGS WAIT COMMAND 19531 155414 30808 0 2 0 syz-executor.0 19531 520655 30808 0 3 0x4000000 biowait syz-executor.0 53641 5850 47374 0 2 0 syz-executor.1 *53641 143323 47374 0 7 0x4000000 syz-executor.1 55647 187328 1 0 3 0x100083 ttyin getty 95896 58603 0 0 3 0x14200 bored sosplice 47374 430283 65655 0 3 0x82 nanosleep syz-executor.1 30808 195466 65655 0 3 0x82 nanosleep syz-executor.0 65655 273065 12728 0 3 0x82 thrsleep syz-fuzzer 65655 13922 12728 0 3 0x4000082 thrsleep syz-fuzzer 65655 235756 12728 0 3 0x4000082 thrsleep syz-fuzzer 65655 239515 12728 0 3 0x4000082 thrsleep syz-fuzzer 65655 453522 12728 0 3 0x4000082 thrsleep syz-fuzzer 65655 89335 12728 0 3 0x4000082 thrsleep syz-fuzzer 65655 423075 12728 0 3 0x4000082 thrsleep syz-fuzzer 65655 175408 12728 0 3 0x4000082 kqread syz-fuzzer 65655 348761 12728 0 3 0x4000082 thrsleep syz-fuzzer 65655 315641 12728 0 3 0x4000082 thrsleep syz-fuzzer 12728 441182 33435 0 3 0x10008a pause ksh 33435 263733 52151 0 3 0x92 select sshd 52151 353558 1 0 3 0x80 select sshd 13774 233594 35171 74 3 0x100092 bpf pflogd 35171 205446 1 0 3 0x80 netio pflogd 94224 392121 18000 73 7 0x100090 syslogd 18000 390906 1 0 3 0x100082 netio syslogd 21765 109563 1 77 3 0x100090 poll dhclient 46941 431091 1 0 3 0x80 poll dhclient 21919 484708 0 0 2 0x14200 zerothread 24362 223453 0 0 3 0x14200 aiodoned aiodoned 92176 253285 0 0 3 0x14200 syncer update 48258 257074 0 0 3 0x14200 cleaner cleaner 10883 121322 0 0 3 0x14200 reaper reaper 64094 26076 0 0 3 0x14200 pgdaemon pagedaemon 58104 193 0 0 3 0x14200 bored crynlk 68622 160200 0 0 3 0x14200 bored crypto 5490 475179 0 0 3 0x40014200 acpi0 acpi0 64597 217511 0 0 3 0x40014200 idle1 58083 86741 0 0 3 0x14200 bored softnet 36787 92879 0 0 3 0x14200 bored systqmp 13255 30970 0 0 3 0x14200 bored systq 18439 268313 0 0 3 0x40014200 bored softclock 54859 417518 0 0 3 0x40014200 idle0 12085 35897 0 0 3 0x14200 bored smr 1 258030 0 0 3 0x82 wait init 0 0 -1 0 3 0x10200 scheduler swapper ddb{0}> show all locks Process 19531 (syz-executor.0) thread 0xffff800020b74270 (520655) exclusive rrwlock inode r = 0 (0xfffffd806e431d58) locked @ /syzkaller/managers/pf/kernel/sys/ufs/ufs/ufs_ihash.c:140 #0 witness_lock+0x594 sys/kern/subr_witness.c:1205 #1 _rw_enter+0x45d sys/kern/kern_rwlock.c:280 #2 _rrw_enter+0x60 sys/kern/kern_rwlock.c:410 #3 ufs_ihashins+0x6d sys/ufs/ufs/ufs_ihash.c:140 #4 ffs_vget+0x143 sys/ufs/ffs/ffs_vfsops.c:1352 #5 ffs_inode_alloc+0x1cf sys/ufs/ffs/ffs_alloc.c:392 #6 ufs_makeinode+0xc2 sys/ufs/ufs/ufs_vnops.c:1832 #7 ufs_mknod+0x4e sys/ufs/ufs/ufs_vnops.c:172 #8 VOP_MKNOD+0x76 sys/kern/vfs_vops.c:134 #9 domknodat+0x33a sys/kern/vfs_syscalls.c:1453 #10 syscall+0x5b8 mi_syscall sys/sys/syscall_mi.h:99 [inline] #10 syscall+0x5b8 sys/arch/amd64/amd64/trap.c:574 #11 Xsyscall+0x128 exclusive rrwlock inode r = 0 (0xfffffd806e434e78) locked @ /syzkaller/managers/pf/kernel/sys/ufs/ufs/ufs_vnops.c:1547 #0 witness_lock+0x594 sys/kern/subr_witness.c:1205 #1 _rw_enter+0x45d sys/kern/kern_rwlock.c:280 #2 _rrw_enter+0x60 sys/kern/kern_rwlock.c:410 #3 VOP_LOCK+0x57 sys/kern/vfs_vops.c:602 #4 vn_lock+0x6e sys/kern/vfs_vnops.c:549 #5 vfs_lookup+0xf5 sys/kern/vfs_lookup.c:387 #6 namei+0x4b2 sys/kern/vfs_lookup.c:224 #7 domknodat+0xa1 sys/kern/vfs_syscalls.c:1405 #8 syscall+0x5b8 mi_syscall sys/sys/syscall_mi.h:99 [inline] #8 syscall+0x5b8 sys/arch/amd64/amd64/trap.c:574 #9 Xsyscall+0x128 Process 53641 (syz-executor.1) thread 0xffff800020b759e0 (143323) shared rwlock vmmaplk r = 0 (0xfffffd807effe720) locked @ /syzkaller/managers/pf/kernel/sys/uvm/uvm_fault.c:1444 #0 witness_lock+0x594 sys/kern/subr_witness.c:1205 #1 _rw_enter+0x45d sys/kern/kern_rwlock.c:280 #2 vm_map_lock_ln+0x164 sys/uvm/uvm_map.c:5261 #3 uvm_map_pageable+0x12b sys/uvm/uvm_map.c:2362 #4 sys_mlock+0x18b sys/uvm/uvm_mmap.c:739 #5 syscall+0x5b8 mi_syscall sys/sys/syscall_mi.h:99 [inline] #5 syscall+0x5b8 sys/arch/amd64/amd64/trap.c:574 #6 Xsyscall+0x128 exclusive kernel_lock &kernel_lock r = 0 (0xffffffff8238ec80) locked @ /syzkaller/managers/pf/kernel/sys/uvm/uvm_map.c:2740 #0 witness_lock+0x594 sys/kern/subr_witness.c:1205 #1 syscall+0x48b mi_syscall sys/sys/syscall_mi.h:91 [inline] #1 syscall+0x48b sys/arch/amd64/amd64/trap.c:574 #2 Xsyscall+0x128 ddb{0}> show malloc Type InUse MemUse HighUse Limit Requests Type Lim Kern Lim devbuf 9516 6415K 6435K 78643K 16341 0 0 pcb 25 9K 11K 78643K 2913 0 0 rtable 100 3K 4K 78643K 697 0 0 ifaddr 56 14K 15K 78643K 277 0 0 counters 39 33K 33K 78643K 39 0 0 ioctlops 0 0K 4K 78643K 1533 0 0 iov 0 0K 24K 78643K 505 0 0 mount 1 1K 1K 78643K 1 0 0 vnodes 1193 75K 76K 78643K 3719 0 0 UFS quota 1 32K 32K 78643K 1 0 0 UFS mount 5 36K 36K 78643K 5 0 0 shm 2 1K 5K 78643K 44 0 0 VM map 2 1K 1K 78643K 2 0 0 sem 10 1K 1K 78643K 17 0 0 dirhash 12 2K 2K 78643K 12 0 0 ACPI 1808 196K 290K 78643K 12628 0 0 file desc 6 17K 19K 78643K 16561 0 0 sigio 1 0K 0K 78643K 245 0 0 proc 54 51K 79K 78643K 767 0 0 subproc 64 65538K 67586K 78643K 74 0 0 NFS srvsock 1 0K 0K 78643K 1 0 0 NFS daemon 1 16K 16K 78643K 1 0 0 ip_moptions 0 0K 0K 78643K 306 0 0 in_multi 33 2K 2K 78643K 162 0 0 ether_multi 1 0K 0K 78643K 24 0 0 mrt 0 0K 0K 78643K 52 0 0 ISOFS mount 1 32K 32K 78643K 1 0 0 MSDOSFS mount 1 16K 16K 78643K 1 0 0 ttys 114 503K 503K 78643K 114 0 0 exec 0 0K 1K 78643K 835 0 0 pfkey data 0 0K 0K 78643K 2 0 0 pagedep 1 8K 8K 78643K 1 0 0 inodedep 1 32K 32K 78643K 1 0 0 newblk 1 0K 0K 78643K 1 0 0 VM swap 7 26K 26K 78643K 7 0 0 UVM amap 123 23K 25K 78643K 42674 0 0 UVM aobj 130 4K 4K 78643K 139 0 0 memdesc 1 4K 4K 78643K 1 0 0 crypto data 1 1K 1K 78643K 1 0 0 ip6_options 0 0K 1K 78643K 100 0 0 NDP 11 0K 0K 78643K 82 0 0 temp 166 2379K 2447K 78643K 38793 0 0 kqueue 0 0K 0K 78643K 12 0 0 SYN cache 2 16K 16K 78643K 2 0 0 ddb{0}> show all pools Name Size Requests Fail Releases Pgreq Pgrel Npage Hiwat Minpg Maxpg Idle arp 64 4 0 0 1 0 1 1 0 8 0 inpcbpl 280 7576 0 7569 1 0 1 1 0 8 0 plimitpl 152 110 0 102 1 0 1 1 0 8 0 plcache 128 20 0 0 1 0 1 1 0 8 0 rtentry 112 62 0 22 2 0 2 2 0 8 0 syncache 264 4 0 4 1 1 0 1 0 8 0 tcpcb 544 460 0 456 1 0 1 1 0 8 0 rttmr 72 29 0 29 4 4 0 1 0 8 0 nd6 48 4 0 0 1 0 1 1 0 8 0 swfcl 56 2 0 0 1 0 1 1 0 8 0 ppxss 1128 61 0 60 3 2 1 1 0 8 0 pfosfp 40 846 0 423 5 0 5 5 0 8 0 pfosfpen 112 1428 0 714 21 0 21 21 0 8 0 pfstitem 24 3045 0 3022 13 10 3 9 0 8 0 pfstkey 112 3045 0 3022 61 57 4 41 0 8 1 pfstate 328 3045 0 3022 191 183 8 120 0 8 3 pfrule 1360 21 0 16 2 1 1 2 0 8 0 art_heap8 4096 1 0 0 1 0 1 1 0 8 0 art_heap4 256 185 0 0 12 0 12 12 0 8 0 art_table 32 186 0 0 2 0 2 2 0 8 0 art_node 16 61 0 27 1 0 1 1 0 8 0 sysvmsgpl 40 30 0 25 1 0 1 1 0 8 0 semupl 112 6 0 6 1 1 0 1 0 8 0 semapl 112 8 0 0 1 0 1 1 0 8 0 shmpl 112 137 0 9 4 0 4 4 0 8 0 dirhash 1024 17 0 0 3 0 3 3 0 8 0 dino1pl 128 22302 0 20854 47 0 47 47 0 8 0 ffsino 272 22302 0 20854 100 3 97 97 0 8 0 nchpl 144 42605 0 40949 62 0 62 62 0 8 0 uvmvnodes 72 5926 0 0 108 0 108 108 0 8 0 vnodes 200 5926 0 0 312 0 312 312 0 8 0 namei 1024 112448 0 112447 2 1 1 1 0 8 0 percpumem 16 30 0 0 1 0 1 1 0 8 0 scsiplug 64 9 0 9 3 3 0 1 0 8 0 scxspl 192 126196 0 126195 22 19 3 6 0 8 2 sigapl 432 16760 0 16744 2 0 2 2 0 8 0 futexpl 56 144913 0 144913 1 0 1 1 0 8 1 knotepl 112 577 0 550 2 1 1 2 0 8 0 kqueuepl 104 734 0 732 1 0 1 1 0 8 0 pipepl 112 3772 0 3753 8 7 1 2 0 8 0 fdescpl 488 16761 0 16744 3 0 3 3 0 8 0 filepl 152 61404 0 61301 11 6 5 6 0 8 1 lockfpl 104 4217 0 4217 58 58 0 1 0 8 0 lockfspl 32 3021 0 3021 59 59 0 1 0 8 0 sessionpl 112 21 0 10 1 0 1 1 0 8 0 pgrppl 48 45 0 34 1 0 1 1 0 8 0 ucredpl 96 8099 0 8090 1 0 1 1 0 8 0 zombiepl 144 16744 0 16744 2 1 1 1 0 8 1 processpl 840 16777 0 16744 4 0 4 4 0 8 0 procpl 600 41829 0 41785 4 0 4 4 0 8 0 srpgc 64 13 0 13 4 4 0 1 0 8 0 sosppl 128 21 0 21 7 7 0 1 0 8 0 sockpl 384 10349 0 10330 48 45 3 4 0 8 1 mcl64k 65536 227 0 0 29 23 6 29 0 8 0 mcl16k 16384 2 0 0 1 0 1 1 0 8 0 mcl12k 12288 25 0 0 2 0 2 2 0 8 0 mcl9k 9216 25 0 0 2 0 2 2 0 8 0 mcl8k 8192 15 0 0 2 0 2 2 0 8 0 mcl4k 4096 25 0 0 4 2 2 3 0 8 0 mcl2k2 2112 4 0 0 1 0 1 1 0 8 0 mcl2k 2048 292 0 0 17 8 9 14 0 8 0 mtagpl 80 1 0 0 1 0 1 1 0 8 0 mbufpl 256 695 0 0 20 11 9 20 0 8 0 bufpl 256 29566 0 22576 438 0 438 438 0 8 0 anonpl 16 1114126 0 1108227 84 60 24 49 0 125 0 amapchunkpl 152 68261 0 68174 15 10 5 9 0 158 0 amappl16 192 72145 0 71863 64 49 15 32 0 8 0 amappl15 184 1 0 0 1 0 1 1 0 8 0 amappl14 176 32 0 26 1 0 1 1 0 8 0 amappl13 168 30 0 26 1 0 1 1 0 8 0 amappl12 160 10 0 10 1 1 0 1 0 8 0 amappl11 152 209 0 196 1 0 1 1 0 8 0 amappl10 144 24303 0 24291 1 0 1 1 0 8 0 amappl9 136 335 0 332 1 0 1 1 0 8 0 amappl8 128 243 0 188 2 0 2 2 0 8 0 amappl7 120 29 0 25 1 0 1 1 0 8 0 amappl6 112 58 0 50 1 0 1 1 0 8 0 amappl5 104 201 0 187 1 0 1 1 0 8 0 amappl4 96 9191 0 9164 2 1 1 2 0 8 0 amappl3 88 296 0 290 1 0 1 1 0 8 0 amappl2 80 166966 0 166901 2 0 2 2 0 8 0 amappl1 72 310063 0 309607 25 15 10 19 0 8 0 amappl 72 42082 0 42046 1 0 1 1 0 75 0 dma4096 4096 1 0 1 1 1 0 1 0 8 0 dma256 256 6 0 6 1 1 0 1 0 8 0 dma64 64 259 0 259 1 1 0 1 0 8 0 dma32 32 7 0 7 1 1 0 1 0 8 0 dma16 16 17 0 17 1 1 0 1 0 8 0 aobjpl 64 138 0 9 3 0 3 3 0 8 0 uaddrrnd 24 16761 0 16744 1 0 1 1 0 8 0 uaddrbest 32 2 0 0 1 0 1 1 0 8 0 uaddr 24 16761 0 16744 1 0 1 1 0 8 0 vmmpekpl 168 97402 0 97382 2 0 2 2 0 8 0 vmmpepl 168 1622642 0 1621224 172 110 62 76 0 357 0 vmsppl 360 16760 0 16744 2 0 2 2 0 8 0 pdppl 4096 33530 0 33488 6 0 6 6 0 8 0 pvpl 32 3563139 0 3553269 306 226 80 127 0 265 0 pmappl 224 16760 0 16744 1 0 1 1 0 8 0 extentpl 40 39 0 25 1 0 1 1 0 8 0 phpool 112 640 0 51 18 0 18 18 0 8 0