witness: lock order reversal: 1st 0xfffffd800b0278a0 vmmaplk (&map->lock) 2nd 0xfffffd8066ccdb40 inode (&ip->i_lock) lock order [1] vmmaplk (&map->lock) -> [2] inode (&ip->i_lock) #0 rw_do_enter_write+0xba sys/kern/kern_rwlock.c:234 #1 rrw_enter+0xc6 sys/kern/kern_rwlock.c:621 #2 VOP_LOCK+0xa3 sys/kern/vfs_vops.c:527 #3 vn_lock+0xa4 sys/kern/vfs_vnops.c:570 #4 vn_rdwr+0xd1 sys/kern/vfs_vnops.c:320 #5 vndstrategy+0x4bd sys/dev/vnd.c:342 #6 physio+0x2d6 sys/kern/kern_physio.c:162 #7 spec_read+0x14b sys/kern/spec_vnops.c:215 #8 VOP_READ+0x101 sys/kern/vfs_vops.c:227 #9 vn_read+0x17b sys/kern/vfs_vnops.c:369 #10 dofilereadv+0x25a sys/kern/sys_generic.c:252 #11 sys_readv+0xd8 sys/kern/sys_generic.c:199 #12 syscall+0xbd4 mi_syscall sys/sys/syscall_mi.h:176 [inline] #12 syscall+0xbd4 sys/arch/amd64/amd64/trap.c:746 #13 Xsyscall+0x128 lock order [2] inode (&ip->i_lock) -> [1] vmmaplk (&map->lock) #0 rw_do_enter_read+0x99 sys/kern/kern_rwlock.c:355 #1 uvmfault_lookup+0x122 sys/uvm/uvm_fault.c:1902 #2 uvm_fault_check+0x4f sys/uvm/uvm_fault.c:699 #3 uvm_fault+0x106 sys/uvm/uvm_fault.c:633 #4 kpageflttrap+0x2f4 sys/arch/amd64/amd64/trap.c:283 #5 kerntrap+0x198 sys/arch/amd64/amd64/trap.c:489 #6 alltraps_kern_meltdown+0x7b #7 copyout+0x64 #8 ffs_read+0x3f2 sys/ufs/ffs/ffs_vnops.c:254 #9 VOP_READ+0x101 sys/kern/vfs_vops.c:227 #10 vn_rdwr+0x15b sys/kern/vfs_vnops.c:-1 #11 vmcmd_map_readvn+0x130 sys/kern/exec_subr.c:249 #12 exec_process_vmcmds+0xef sys/kern/exec_subr.c:139 #13 sys_execve+0xd3d sys/kern/kern_exec.c:471 #14 start_init+0x3c3 sys/kern/init_main.c:720 #15 proc_trampoline+0x10 Stopped at db_enter+0x25: addq $0x8,%rsp ddb{1}> ddb{1}> set $lines = 0 ddb{1}> set $maxwidth = 0 ddb{1}> show panic the kernel did not panic ddb{1}> trace db_enter() at db_enter+0x25 sys/arch/amd64/amd64/db_interface.c:438 witness_checkorder(fffffd8066ccdb40,9,0) at witness_checkorder+0x10b9 sys/kern/subr_witness.c:-1 rw_do_enter_write(fffffd8066ccdb28,1) at rw_do_enter_write+0xba sys/kern/kern_rwlock.c:234 rrw_enter(fffffd8066ccdb28,1) at rrw_enter+0xc6 sys/kern/kern_rwlock.c:621 VOP_LOCK(fffffd806a1f1b48,2001) at VOP_LOCK+0xa3 sys/kern/vfs_vops.c:527 vn_lock(fffffd806a1f1b48,2001) at vn_lock+0xa4 sys/kern/vfs_vnops.c:570 vn_rdwr(0,fffffd806a1f1b48,ffff800011a26740,1d,0,1,92b7f834972eb48d,0,1d,0) at vn_rdwr+0xd1 sys/kern/vfs_vnops.c:320 vndstrategy(fffffd8072dbec20) at vndstrategy+0x4bd sys/dev/vnd.c:342 physio(ffffffff81ca7600,2902,8000,ffffffff8213c390,ffff80002a30ed40) at physio+0x2d6 sys/kern/kern_physio.c:162 spec_read(ffff80002a30eb20) at spec_read+0x14b sys/kern/spec_vnops.c:215 VOP_READ(fffffd806ee1deb8,ffff80002a30ed40,0,fffffd80097fb340) at VOP_READ+0x101 sys/kern/vfs_vops.c:227 vn_read(fffffd806a53a5c0,ffff80002a30ed40,0) at vn_read+0x17b sys/kern/vfs_vnops.c:369 dofilereadv(ffff8000fffef4f0,5,ffff80002a30ed40,0,ffff80002a30ee00) at dofilereadv+0x25a sys/kern/sys_generic.c:252 sys_readv(ffff8000fffef4f0,ffff80002a30eeb0,ffff80002a30ee00) at sys_readv+0xd8 sys/kern/sys_generic.c:199 syscall(ffff80002a30eeb0) at syscall+0xbd4 mi_syscall sys/sys/syscall_mi.h:176 [inline] syscall(ffff80002a30eeb0) at syscall+0xbd4 sys/arch/amd64/amd64/trap.c:746 Xsyscall() at Xsyscall+0x128 end of kernel end trace frame: 0x28cdb757170, count: -16 ddb{1}> show registers rdi 0 rsi 0 rbp 0xffff80002a30e620 rbx 0 rdx 0x3fd rcx 0xffff8000299edf00 rax 0x1 r8 0xffff80002a30e500 r9 0x8080808080808080 r10 0xab4c6a5382c830a5 r11 0x55c8ab1167552730 r12 0xfffffd8003ef32c0 r13 0xfffffd80046e2ce0 r14 0x3 r15 0xffffffff833d75fd substchar+0x6b69 rip 0xffffffff813fa645 db_enter+0x25 cs 0x8 rflags 0x246 rsp 0xffff80002a30e610 ss 0x10 db_enter+0x25: addq $0x8,%rsp ddb{1}> show proc PROC (syz-executor.0) tid=246475 pid=19809 tcnt=2 stat=onproc flags process=0 proc=4000000 runpri=17, usrpri=55, slppri=32, nice=20 wchan=0x0, wmesg=, ps_single=0x0 scnt=0 ecnt=0 forw=0xffffffffffffffff, list=0xffff8000fffefa20,0xffffffff83993708 process=0xffff8000ffff5818 user=0xffff80002a309000, vmspace=0xfffffd800b0277a0 estcpu=36, cpticks=1, pctcpu=0.0, user=0, sys=1, intr=0 ddb{1}> ps PID TID PPID UID S FLAGS WAIT COMMAND 19809 333626 3996 0 7 0 syz-executor.0 *19809 246475 3996 0 7 0x4000000 syz-executor.0 3996 83809 89604 0 3 0x82 nanoslp syz-executor.0 89604 154799 38639 0 3 0x82 thrsleep syz-execprog 89604 496635 38639 0 3 0x4000082 nanoslp syz-execprog 89604 377320 38639 0 3 0x4000082 thrsleep syz-execprog 89604 165265 38639 0 3 0x4000082 kqread syz-execprog 89604 494126 38639 0 3 0x4000082 wait syz-execprog 89604 64172 38639 0 3 0x4000082 thrsleep syz-execprog 89604 413061 38639 0 3 0x4000082 thrsleep syz-execprog 89604 473150 38639 0 3 0x4000082 thrsleep syz-execprog 89604 228280 38639 0 3 0x4000082 thrsleep syz-execprog 89604 302363 38639 0 3 0x4000082 thrsleep syz-execprog 89604 139078 38639 0 3 0x4000082 thrsleep syz-execprog 38639 17737 95679 0 3 0x10008a sigsusp ksh 95679 26849 30562 0 3 0x98 kqread sshd-session 30562 198066 59352 0 3 0x92 kqread sshd-session 73729 428032 1 0 3 0x100083 ttyin getty 59352 442207 1 0 3 0x88 kqread sshd 51348 347575 41512 74 3 0x1100092 bpf pflogd 41512 261702 1 0 3 0x80 sbwait pflogd 20893 20667 28560 73 3 0x1100090 kqread syslogd 28560 298706 1 0 3 0x100082 sbwait syslogd 63875 105750 1 0 3 0x100080 kqread resolvd 54532 308401 22190 77 3 0x100092 kqread dhcpleased 25965 460493 22190 77 3 0x100092 kqread dhcpleased 22190 451302 1 0 3 0x80 kqread dhcpleased 29638 479241 0 0 3 0x14200 bored smr 80649 77639 0 0 3 0x14200 pgzero zerothread 25109 347682 0 0 3 0x14200 aiodoned aiodoned 82226 518774 0 0 3 0x14200 syncer update 441 21248 0 0 3 0x14200 cleaner cleaner 23001 263302 0 0 3 0x14200 reaper reaper 38019 109639 0 0 3 0x14200 pgdaemon pagedaemon 26050 161 0 0 3 0x14200 bored viomb 68266 408096 0 0 3 0x40014200 acpi0 acpi0 83972 390862 0 0 3 0x40014200 idle1 79868 3237 0 0 3 0x14200 bored softnet1 93167 330784 0 0 3 0x14200 bored softnet0 97556 110253 0 0 3 0x14200 smrbar systqmp 5673 124879 0 0 3 0x14200 bored systq 1768 498792 0 0 3 0x14200 tmoslp softclockmp 98736 377996 0 0 3 0x40014200 tmoslp softclock 76003 110948 0 0 3 0x40014200 idle0 1 400787 0 0 3 0x82 wait init 0 0 -1 0 3 0x10200 scheduler swapper ddb{1}> show all locks Process 19809 (syz-executor.0) thread 0xffff8000fffef4f0 (246475) shared rwlock vmmaplk r = 0 (0xfffffd800b0278a0) #0 witness_lock+0x5f1 stacktrace_save sys/sys/stacktrace.h:37 [inline] #0 witness_lock+0x5f1 sys/kern/subr_witness.c:1160 #1 rw_do_enter_read+0x3e8 sys/kern/kern_rwlock.c:413 #2 uvm_vslock_device+0x149 sys/uvm/uvm_glue.c:173 #3 physio+0x257 sys/kern/kern_physio.c:139 #4 spec_read+0x14b sys/kern/spec_vnops.c:215 #5 VOP_READ+0x101 sys/kern/vfs_vops.c:227 #6 vn_read+0x17b sys/kern/vfs_vnops.c:369 #7 dofilereadv+0x25a sys/kern/sys_generic.c:252 #8 sys_readv+0xd8 sys/kern/sys_generic.c:199 #9 syscall+0xbd4 mi_syscall sys/sys/syscall_mi.h:176 [inline] #9 syscall+0xbd4 sys/arch/amd64/amd64/trap.c:746 #10 Xsyscall+0x128 exclusive kernel_lock &kernel_lock r = 0 (0xffffffff8387f318) #0 witness_lock+0x5f1 stacktrace_save sys/sys/stacktrace.h:37 [inline] #0 witness_lock+0x5f1 sys/kern/subr_witness.c:1160 #1 vn_read+0x56 sys/kern/vfs_vnops.c:351 #2 dofilereadv+0x25a sys/kern/sys_generic.c:252 #3 sys_readv+0xd8 sys/kern/sys_generic.c:199 #4 syscall+0xbd4 mi_syscall sys/sys/syscall_mi.h:176 [inline] #4 syscall+0xbd4 sys/arch/amd64/amd64/trap.c:746 #5 Xsyscall+0x128 Process 97556 (systqmp) thread 0xffff8000ffffe7c8 (110253) shared rwlock systqmp r = 0 (0xffffffff83867228) #0 witness_lock+0x5f1 stacktrace_save sys/sys/stacktrace.h:37 [inline] #0 witness_lock+0x5f1 sys/kern/subr_witness.c:1160 #1 taskq_thread+0x12a sys/kern/kern_task.c:442 #2 proc_trampoline+0x10 ddb{1}> show malloc Type InUse MemUse HighUse Limit Requests Type Lim devbuf 10166 11005K 11005K 166960K 11262 0 pcb 17 12K 12K 166960K 17 0 rtable 79 2K 2K 166960K 149 0 pf 20 15K 18K 166960K 34 0 ifaddr 15 2K 2K 166960K 19 0 ifgroup 27 1K 1K 166960K 32 0 sysctl 1 1K 9K 166960K 5 0 counters 54 35K 35K 166960K 56 0 ioctlops 0 0K 4K 166960K 1477 0 mount 1 1K 1K 166960K 1 0 log 0 0K 0K 166960K 4 0 vnodes 1264 80K 80K 166960K 1284 0 UFS quota 1 32K 32K 166960K 1 0 UFS mount 5 36K 36K 166960K 5 0 shm 2 1K 1K 166960K 2 0 VM map 2 1K 1K 166960K 2 0 sem 2 0K 0K 166960K 2 0 dirhash 12 2K 2K 166960K 12 0 ACPI 1692 195K 286K 166960K 12470 0 file desc 4 9K 13K 166960K 40 0 proc 69 115K 131K 166960K 360 0 NFS srvsock 1 0K 0K 166960K 1 0 NFS daemon 1 16K 16K 166960K 1 0 in_multi 22 1K 1K 166960K 33 0 ether_multi 1 0K 0K 166960K 1 0 ISOFS mount 1 32K 32K 166960K 1 0 MSDOSFS mount 1 16K 16K 166960K 1 0 ttys 25 122K 122K 166960K 25 0 exec 0 0K 1K 166960K 344 0 fusefs mount 1 32K 32K 166960K 1 0 tdb 3 0K 0K 166960K 3 0 VM swap 8 62K 64K 166960K 10 0 UVM amap 185 103K 216K 166960K 3929 0 UVM aobj 3 2K 2K 166960K 3 0 pinsyscall 30 60K 112K 166960K 1266 0 memdesc 1 4K 4K 166960K 1 0 crypto data 1 1K 1K 166960K 1 0 NDP 7 0K 0K 166960K 10 0 temp 1 8640K 8704K 166960K 4543 0 kqueue 13 20K 20K 166960K 45 0 SYN cache 2 16K 16K 166960K 2 0 ddb{1}> show all pools Name Size Requests Fail Releases Pgreq Pgrel Npage Hiwat Minpg Maxpg Idle plcache 128 26 0 0 1 0 1 1 0 8 0 rtpcb 120 22 0 19 1 0 1 1 0 8 0 rtentry 176 41 0 10 3 1 2 2 0 8 0 unpcb 144 69 0 52 1 0 1 1 0 8 0 syncache 336 9 0 9 2 1 1 1 0 8 1 tcpcb 736 11 0 8 1 0 1 1 0 8 0 arp 136 4 0 1 1 0 1 1 0 8 0 inpcb 328 42 0 36 1 0 1 1 0 8 0 nd6 152 4 0 2 2 1 1 1 0 8 0 pfosfp 40 1428 0 1005 5 0 5 5 0 8 0 pfosfpen 112 1428 0 714 21 0 21 21 0 8 0 pfstitem 24 14 0 2 1 0 1 1 0 8 0 pfstkey 128 14 0 2 1 0 1 1 0 8 0 pfstate 384 14 0 2 2 0 2 2 0 8 0 pfrule 1344 21 0 15 2 0 2 2 0 8 0 art_heap8 4096 1 0 0 1 0 1 1 0 8 0 art_heap4 256 188 0 46 12 3 9 9 0 8 0 art_table 40 189 0 46 3 1 2 2 0 8 0 art_node 32 41 0 12 1 0 1 1 0 8 0 dirhash 1024 17 0 0 3 0 3 3 0 8 0 dino2pl 256 1574 0 75 94 0 94 94 0 8 0 ffsino 296 1574 0 75 116 0 116 116 0 8 0 nchpl 144 1844 0 105 65 0 65 65 0 8 0 uvmvnodes 80 1589 0 0 33 0 33 33 0 8 0 vnodes 216 1589 0 0 89 0 89 89 0 8 0 namei 1024 7007 0 7007 3 2 1 2 0 8 1 percpumem 16 43 0 1 1 0 1 1 0 8 0 kstatmem 264 14 0 2 1 0 1 1 0 8 0 scxspl 216 9829 0 9829 10 5 5 8 1 8 5 plimitpl 152 52 0 42 1 0 1 1 0 8 0 sigapl 424 418 0 384 8 3 5 6 0 8 1 knotepl 120 74 0 0 3 1 2 3 0 8 0 kqueuepl 224 41 0 32 1 0 1 1 0 8 0 pipepl 344 151 0 144 4 2 2 2 0 8 1 fdescpl 528 402 0 384 3 1 2 3 0 8 0 filepl 160 2023 0 1946 6 1 5 5 0 8 1 lockfpl 104 6 0 4 1 0 1 1 0 8 0 lockfspl 48 4 0 2 1 0 1 1 0 8 0 sessionpl 144 28 0 18 1 0 1 1 0 8 0 pgrppl 48 28 0 18 1 0 1 1 0 8 0 ucredpl 104 154 0 140 1 0 1 1 0 8 0 zombiepl 144 384 0 384 2 1 1 1 0 8 1 processpl 1232 418 0 384 5 1 4 4 0 8 1 procpl 664 441 0 396 8 3 5 5 0 8 1 sockpl 752 133 0 107 3 0 3 3 0 8 0 mcl8k 8192 2 0 0 1 0 1 1 0 8 0 mcl4k 4096 168 0 0 21 0 21 21 0 8 0 mcl2k 2048 14 0 0 2 0 2 2 0 8 0 mtagpl 96 2 0 0 1 0 1 1 0 8 0 mbufpl 256 174 0 0 11 0 11 11 0 8 0 bufpl 280 5144 0 187 355 0 355 355 0 8 0 anonpl 32 8544 0 0 69 0 69 69 0 246 0 amapchunkpl 152 12398 0 12022 41 17 24 27 0 158 4 amappl16 200 4525 0 4447 9 3 6 6 0 8 0 amappl15 192 38 0 35 2 1 1 1 0 8 0 amappl14 184 214 0 200 3 1 2 2 0 8 1 amappl13 176 44 0 44 2 2 0 1 0 8 0 amappl12 168 1022 0 1002 4 2 2 2 0 8 0 amappl11 160 60 0 45 1 0 1 1 0 8 0 amappl10 152 103 0 101 2 1 1 1 0 8 0 amappl9 144 1125 0 1125 3 2 1 1 0 8 1 amappl8 136 173 0 150 1 0 1 1 0 8 0 amappl7 128 208 0 191 3 1 2 2 0 8 0 amappl6 120 259 0 253 2 1 1 2 0 8 0 amappl5 112 175 0 166 1 0 1 1 0 8 0 amappl4 104 517 0 493 3 1 2 2 0 8 1 amappl3 96 1275 0 1223 4 2 2 3 0 8 0 amappl2 88 1000 0 935 6 2 4 4 0 8 2 amappl1 80 15077 0 14519 34 13 21 24 0 8 8 amappl 88 2889 0 2789 6 2 4 4 0 92 1 dma4096 4096 1 0 1 1 1 0 1 0 8 0 dma1024 1024 1 0 0 1 0 1 1 0 8 0 dma256 256 6 0 6 1 1 0 1 0 8 0 dma128 128 253 0 253 1 1 0 1 0 8 0 dma64 64 6 0 6 1 1 0 1 0 8 0 dma32 32 7 0 7 1 1 0 1 0 8 0 dma16 16 18 0 17 1 0 1 1 0 8 0 aobjpl 72 2 0 0 1 0 1 1 0 8 0 uaddrrnd 24 402 0 384 1 0 1 1 0 8 0 uaddrbest 32 2 0 0 1 0 1 1 0 8 0 uaddr 24 402 0 384 1 0 1 1 0 8 0 vmmpekpl 168 11450 0 11426 2 0 2 2 0 8 0 vmmpepl 168 56868 0 55347 129 16 113 127 0 357 43 vmsppl 488 401 0 384 5 1 4 4 0 8 1 rwobjpl 80 24394 0 21924 79 14 65 68 0 8 2 pdppl 4096 812 0 768 106 44 62 68 0 8 18 pvpl 32 46398 0 0 376 1 375 375 0 265 0 pmappl 256 401 0 384 2 0 2 2 0 8 0 extentpl 40 45 0 27 1 0 1 1 0 8 0 phpool 112 262 0 52 7 0 7 7 0 8 0 ddb{1}> machine ddbcpu 0 Stopped at x86_ipi_db+0x27: addq $0x8,%rsp ddb{0}> trace x86_ipi_db(ffffffff837d5ff0) at x86_ipi_db+0x27 sys/arch/amd64/amd64/db_interface.c:394 x86_ipi_handler() at x86_ipi_handler+0xd9 sys/arch/amd64/amd64/ipi.c:106 Xresume_lapic_ipi() at Xresume_lapic_ipi+0x27 __mp_lock(ffffffff8387f110) at __mp_lock+0x192 __mp_lock_spin sys/kern/kern_lock.c:134 [inline] __mp_lock(ffffffff8387f110) at __mp_lock+0x192 sys/kern/kern_lock.c:165 intr_handler(ffff80002a300cd0,ffff800000069c00) at intr_handler+0xe9 sys/arch/amd64/amd64/intr.c:559 Xintr_ioapic_edge16_untramp() at Xintr_ioapic_edge16_untramp+0x18f __mp_lock(ffffffff8387f110) at __mp_lock+0x192 __mp_lock_spin sys/kern/kern_lock.c:134 [inline] __mp_lock(ffffffff8387f110) at __mp_lock+0x192 sys/kern/kern_lock.c:165 softintr_dispatch(0) at softintr_dispatch+0x125 sys/kern/kern_softintr.c:83 dosoftint(0) at dosoftint+0x54 sys/arch/amd64/amd64/intr.c:847 Xsoftclock() at Xsoftclock+0x27 end of kernel end trace frame: 0x7bde496cce20, count: -10 ddb{0}> machine ddbcpu 1 Stopped at db_enter+0x25: addq $0x8,%rsp ddb{1}> trace db_enter() at db_enter+0x25 sys/arch/amd64/amd64/db_interface.c:438 witness_checkorder(fffffd8066ccdb40,9,0) at witness_checkorder+0x10b9 sys/kern/subr_witness.c:-1 rw_do_enter_write(fffffd8066ccdb28,1) at rw_do_enter_write+0xba sys/kern/kern_rwlock.c:234 rrw_enter(fffffd8066ccdb28,1) at rrw_enter+0xc6 sys/kern/kern_rwlock.c:621 VOP_LOCK(fffffd806a1f1b48,2001) at VOP_LOCK+0xa3 sys/kern/vfs_vops.c:527 vn_lock(fffffd806a1f1b48,2001) at vn_lock+0xa4 sys/kern/vfs_vnops.c:570 vn_rdwr(0,fffffd806a1f1b48,ffff800011a26740,1d,0,1,92b7f834972eb48d,0,1d,0) at vn_rdwr+0xd1 sys/kern/vfs_vnops.c:320 vndstrategy(fffffd8072dbec20) at vndstrategy+0x4bd sys/dev/vnd.c:342 physio(ffffffff81ca7600,2902,8000,ffffffff8213c390,ffff80002a30ed40) at physio+0x2d6 sys/kern/kern_physio.c:162 spec_read(ffff80002a30eb20) at spec_read+0x14b sys/kern/spec_vnops.c:215 VOP_READ(fffffd806ee1deb8,ffff80002a30ed40,0,fffffd80097fb340) at VOP_READ+0x101 sys/kern/vfs_vops.c:227 vn_read(fffffd806a53a5c0,ffff80002a30ed40,0) at vn_read+0x17b sys/kern/vfs_vnops.c:369 dofilereadv(ffff8000fffef4f0,5,ffff80002a30ed40,0,ffff80002a30ee00) at dofilereadv+0x25a sys/kern/sys_generic.c:252 sys_readv(ffff8000fffef4f0,ffff80002a30eeb0,ffff80002a30ee00) at sys_readv+0xd8 sys/kern/sys_generic.c:199 syscall(ffff80002a30eeb0) at syscall+0xbd4 mi_syscall sys/sys/syscall_mi.h:176 [inline] syscall(ffff80002a30eeb0) at syscall+0xbd4 sys/arch/amd64/amd64/trap.c:746 Xsyscall() at Xsyscall+0x128 end of kernel end trace frame: 0x28cdb757170, count: -16