witness: lock order reversal: 1st 0xffffffff82cc8bd0 &sched_lock (&sched_lock) 2nd 0xffff8000ffff7bc8 &pr->ps_mtx (&pr->ps_mtx) lock order "&pr->ps_mtx"(mutex) -> "&sched_lock"(sched_lock) first seen at: #0 __mp_lock+0xa2 read_rflags machine/cpufunc.h:195 [inline] #0 __mp_lock+0xa2 intr_disable machine/cpufunc.h:216 [inline] #0 __mp_lock+0xa2 sys/kern/kern_lock.c:142 #1 donice+0x178 sys/kern/kern_resource.c:218 #2 syscall+0x5e2 mi_syscall sys/sys/syscall_mi.h:110 [inline] #2 syscall+0x5e2 sys/arch/amd64/amd64/trap.c:623 #3 Xsyscall+0x128 lock order "&sched_lock"(sched_lock) -> "&pr->ps_mtx"(mutex) first seen at: #0 mtx_enter+0x3e sys/kern/kern_lock.c:265 #1 single_thread_set+0x35a single_thread_wait sys/kern/kern_sig.c:2172 [inline] #1 single_thread_set+0x35a sys/kern/kern_sig.c:2155 #2 sigexit+0x90 sys/kern/kern_sig.c:1562 #3 postsig+0x4a9 sys/kern/kern_sig.c:1494 #4 userret+0x16e sys/kern/kern_sig.c:1987 #5 syscall+0x4e7 mi_syscall_return sys/sys/syscall_mi.h:137 [inline] #5 syscall+0x4e7 sys/arch/amd64/amd64/trap.c:644 #6 Xsyscall+0x128 Stopped at db_enter+0x1c: 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+0x1c sys/arch/amd64/amd64/db_interface.c:437 witness_checkorder(ffff8000ffff7bc8,9,0) at witness_checkorder+0x10b7 witness_debugger sys/kern/subr_witness.c:2510 [inline] witness_checkorder(ffff8000ffff7bc8,9,0) at witness_checkorder+0x10b7 sys/kern/subr_witness.c:1110 mtx_enter(ffff8000ffff7bb8) at mtx_enter+0x3e sys/kern/kern_lock.c:265 single_thread_set(ffff80002121a570,0,1) at single_thread_set+0x35a single_thread_wait sys/kern/kern_sig.c:2172 [inline] single_thread_set(ffff80002121a570,0,1) at single_thread_set+0x35a sys/kern/kern_sig.c:2155 sigexit(ffff80002121a570,6) at sigexit+0x90 sys/kern/kern_sig.c:1562 postsig(ffff80002121a570,6,ffff80002e419958) at postsig+0x4a9 sys/kern/kern_sig.c:1494 userret(ffff80002121a570) at userret+0x16e sys/kern/kern_sig.c:1987 syscall(ffff80002e419a90) at syscall+0x4e7 mi_syscall_return sys/sys/syscall_mi.h:137 [inline] syscall(ffff80002e419a90) at syscall+0x4e7 sys/arch/amd64/amd64/trap.c:644 Xsyscall() at Xsyscall+0x128 end of kernel end trace frame: 0x442a7071830, count: -9 ddb{0}> show registers rdi 0x3 rsi 0x40000 acpi_pdirpa+0x2be63 rbp 0xffff80002e419660 rbx 0x3 rdx 0xffff800000cfab40 rcx 0xffff80002121a570 rax 0x3ffff acpi_pdirpa+0x2be62 r8 0xffff80002e4195d0 r9 0x8080808080808080 r10 0x2aee3fd7b7925a38 r11 0xcbabc5e648dab10f r12 0xfffffd8003a0a900 r13 0 r14 0xfffffd80039fc8e0 r15 0xfffffd80031c7bc0 rip 0xffffffff81b6e27c db_enter+0x1c cs 0x8 rflags 0x246 rsp 0xffff80002e419650 ss 0x10 db_enter+0x1c: addq $0x8,%rsp ddb{0}> show proc PROC (syz-executor.0) pid=349899 stat=onproc flags process=500010 proc=4002000 pri=32, usrpri=69, nice=20 forw=0xffffffffffffffff, list=0xffff80002121b560,0xffffffff82c90e98 process=0xffff8000ffff7ab8 user=0xffff80002e414000, vmspace=0xfffffd806c997cc8 estcpu=19, cpticks=0, pctcpu=0.0 user=0, sys=0, intr=0 ddb{0}> ps PID TID PPID UID S FLAGS WAIT COMMAND 84789 386640 81288 32767 2 0x10 syz-executor.2 59453 382917 93891 32767 2 0x10 syz-executor.5 90460 177333 15784 32767 4 0x582010 syz-executor.0 *90460 349899 15784 32767 7 0x4502010 syz-executor.0 88740 106550 31332 32767 2 0x10 syz-executor.7 4621 315266 63489 32767 2 0x10 syz-executor.6 4621 483620 63489 32767 3 0x4000090 fsleep syz-executor.6 56648 306245 66679 32767 2 0x10 syz-executor.1 56648 519190 66679 32767 3 0x4000090 fsleep syz-executor.1 93891 322976 34685 32767 3 0x90 nanoslp syz-executor.5 34685 332631 18444 0 3 0x82 wait syz-executor.5 42662 10112 0 0 3 0x14200 bored sosplice 31332 26352 12994 32767 3 0x90 nanoslp syz-executor.7 77137 287811 72329 32767 3 0x90 nanoslp syz-executor.3 63489 290414 83976 32767 3 0x90 nanoslp syz-executor.6 83976 438887 18444 0 3 0x82 wait syz-executor.6 35415 380225 72119 32767 7 0x10 syz-executor.4 72329 383419 18444 0 3 0x82 wait syz-executor.3 12994 72449 18444 0 3 0x82 wait syz-executor.7 72119 222081 18444 0 3 0x82 wait syz-executor.4 81288 133573 94440 32767 3 0x90 nanoslp syz-executor.2 94440 13301 18444 0 3 0x82 wait syz-executor.2 66679 247242 40228 32767 3 0x90 nanoslp syz-executor.1 40228 245886 18444 0 3 0x82 wait syz-executor.1 15784 24452 25852 32767 3 0x90 nanoslp syz-executor.0 25852 443477 18444 0 3 0x82 wait syz-executor.0 18444 170372 27296 0 3 0x2000082 wait syz-fuzzer 18444 185771 27296 0 3 0x6000082 nanoslp syz-fuzzer 18444 50560 27296 0 3 0x6000082 wait syz-fuzzer 18444 345373 27296 0 3 0x6000082 wait syz-fuzzer 18444 111045 27296 0 3 0x6000082 wait syz-fuzzer 18444 167077 27296 0 3 0x6000082 thrsleep syz-fuzzer 18444 147408 27296 0 3 0x6000082 wait syz-fuzzer 18444 239220 27296 0 3 0x6000082 thrsleep syz-fuzzer 18444 104245 27296 0 3 0x6000082 wait syz-fuzzer 18444 137333 27296 0 3 0x6000082 wait syz-fuzzer 18444 172643 27296 0 3 0x6000082 thrsleep syz-fuzzer 18444 454119 27296 0 3 0x6000082 wait syz-fuzzer 18444 92079 27296 0 3 0x6000082 thrsleep syz-fuzzer 18444 345895 27296 0 3 0x6000082 thrsleep syz-fuzzer 18444 34508 27296 0 3 0x6000082 kqread syz-fuzzer 27296 200445 98878 0 3 0x10008a sigsusp ksh 98878 326473 60672 0 3 0x9a kqread sshd 80078 105306 1 0 3 0x100083 ttyin getty 60672 8654 1 0 3 0x88 kqread sshd 19530 341275 76432 73 3 0x1100090 kqread syslogd 76432 289495 1 0 3 0x100082 netio syslogd 40921 383100 1 0 3 0x100080 kqread resolvd 19869 49842 67336 77 3 0x100092 kqread dhcpleased 60897 193310 67336 77 3 0x100092 kqread dhcpleased 67336 399910 1 0 3 0x80 kqread dhcpleased 66293 14732 0 0 3 0x14200 bored smr 83795 264474 0 0 2 0x14200 zerothread 22903 255329 0 0 3 0x14200 aiodoned aiodoned 38432 434834 0 0 3 0x14200 syncer update 42056 22376 0 0 3 0x14200 cleaner cleaner 2849 303011 0 0 3 0x14200 reaper reaper 96398 90154 0 0 3 0x14200 pgdaemon pagedaemon 62086 241787 0 0 3 0x14200 bored viomb 63490 487109 0 0 3 0x40014200 acpi0 acpi0 36340 209979 0 0 3 0x40014200 idle1 76886 231166 0 0 3 0x14200 bored softnet3 661 401638 0 0 3 0x14200 bored softnet2 99872 17395 0 0 3 0x14200 bored softnet1 52959 427612 0 0 3 0x14200 bored softnet0 79917 292730 0 0 3 0x14200 bored systqmp 7359 194572 0 0 3 0x14200 bored systq 21576 462768 0 0 3 0x40014200 bored softclock 88215 517771 0 0 3 0x40014200 idle0 1 259090 0 0 3 0x82 wait init 0 0 -1 0 3 0x10200 scheduler swapper ddb{0}> show all locks CPU 0: exclusive sched_lock &sched_lock r = 0 (0xffffffff82cc8bd0) #0 witness_lock+0x447 #1 single_thread_set+0x179 sys/kern/kern_sig.c:2113 #2 sigexit+0x90 sys/kern/kern_sig.c:1562 #3 postsig+0x4a9 sys/kern/kern_sig.c:1494 #4 userret+0x16e sys/kern/kern_sig.c:1987 #5 syscall+0x4e7 mi_syscall_return sys/sys/syscall_mi.h:137 [inline] #5 syscall+0x4e7 sys/arch/amd64/amd64/trap.c:644 #6 Xsyscall+0x128 Process 90460 (syz-executor.0) thread 0xffff80002121a570 (349899) exclusive kernel_lock &kernel_lock r = 0 (0xffffffff82ca0228) #0 witness_lock+0x447 #1 postsig+0x49e sys/kern/kern_sig.c:1500 #2 userret+0x16e sys/kern/kern_sig.c:1987 #3 syscall+0x4e7 mi_syscall_return sys/sys/syscall_mi.h:137 [inline] #3 syscall+0x4e7 sys/arch/amd64/amd64/trap.c:644 #4 Xsyscall+0x128 exclusive sched_lock &sched_lock r = 0 (0xffffffff82cc8bd0) #0 witness_lock+0x447 #1 single_thread_set+0x179 sys/kern/kern_sig.c:2113 #2 sigexit+0x90 sys/kern/kern_sig.c:1562 #3 postsig+0x4a9 sys/kern/kern_sig.c:1494 #4 userret+0x16e sys/kern/kern_sig.c:1987 #5 syscall+0x4e7 mi_syscall_return sys/sys/syscall_mi.h:137 [inline] #5 syscall+0x4e7 sys/arch/amd64/amd64/trap.c:644 #6 Xsyscall+0x128 ddb{0}> show malloc Type InUse MemUse HighUse Limit Requests Type Lim devbuf 10200 6410K 6420K 78643K 11282 0 pcb 13 10K 12K 78643K 15 0 rtable 238 6K 7K 78643K 448 0 pf 29 8K 8K 78643K 31 0 ifaddr 44 15K 15K 78643K 50 0 ifgroup 50 2K 2K 78643K 54 0 sysctl 3 1K 1K 78643K 3 0 counters 60 35K 35K 78643K 62 0 ioctlops 0 0K 2K 78643K 138 0 iov 0 0K 16K 78643K 55 0 mount 1 1K 1K 78643K 1 0 log 0 0K 0K 78643K 4 0 vnodes 1278 80K 80K 78643K 1482 0 UFS quota 1 32K 32K 78643K 1 0 UFS mount 5 36K 36K 78643K 5 0 shm 2 1K 9K 78643K 32 0 VM map 2 1K 1K 78643K 2 0 sem 10 1K 1K 78643K 15 0 dirhash 12 2K 2K 78643K 12 0 ACPI 1697 195K 286K 78643K 12548 0 file desc 24 89K 121K 78643K 1701 0 sigio 0 0K 0K 78643K 235 0 proc 56 78K 103K 78643K 579 0 subproc 104 6K 6K 78643K 117 0 NFS srvsock 1 0K 0K 78643K 1 0 NFS daemon 1 16K 16K 78643K 1 0 ip_moptions 0 0K 0K 78643K 171 0 in_multi 99 7K 7K 78643K 118 0 ether_multi 1 0K 0K 78643K 1 0 ISOFS mount 1 32K 32K 78643K 1 0 MSDOSFS mount 1 16K 16K 78643K 1 0 ttys 139 625K 625K 78643K 139 0 exec 0 0K 1K 78643K 516 0 tdb 3 0K 0K 78643K 3 0 pagedep 1 8K 8K 78643K 1 0 inodedep 1 32K 32K 78643K 1 0 newblk 1 0K 0K 78643K 1 0 VM swap 8 62K 64K 78643K 10 0 UVM amap 347 87K 100K 78643K 19082 0 UVM aobj 120 3K 3K 78643K 123 0 memdesc 1 4K 4K 78643K 1 0 crypto data 1 1K 1K 78643K 1 0 ip6_options 0 0K 0K 78643K 68 0 NDP 11 0K 2K 78643K 30 0 temp 73 5916K 5980K 78643K 7739 0 kqueue 12 18K 33K 78643K 182 0 SYN cache 2 16K 16K 78643K 2 0 ddb{0}> show all pools Name Size Requests Fail Releases Pgreq Pgrel Npage Hiwat Minpg Maxpg Idle plcache 128 22 0 0 1 0 1 1 0 8 0 rtpcb 120 79 0 76 1 0 1 1 0 8 0 rtentry 112 127 0 15 4 0 4 4 0 8 0 unpcb 144 1398 0 1385 20 19 1 8 0 8 0 syncache 304 15 0 15 3 2 1 1 0 8 1 tcpqe 32 81 0 81 3 2 1 1 0 8 1 tcpcb 808 586 0 582 27 20 7 11 0 8 6 arp 120 21 0 2 1 0 1 1 0 8 0 inpcb 368 1306 0 1296 29 21 8 10 0 8 6 nd6 136 31 0 6 1 0 1 1 0 8 0 kcovpl 48 9 0 1 1 0 1 1 0 8 0 art_heap8 4096 1 0 0 1 0 1 1 0 8 0 art_heap4 256 524 0 68 30 1 29 30 0 8 0 art_table 32 525 0 68 4 0 4 4 0 8 0 art_node 16 126 0 24 1 0 1 1 0 8 0 semupl 112 4 0 4 1 1 0 1 0 8 0 semapl 112 8 0 0 1 0 1 1 0 8 0 shmpl 112 120 0 3 4 0 4 4 0 8 0 dirhash 1024 17 0 0 3 0 3 3 0 8 0 dino2pl 256 3486 0 2048 91 0 91 91 0 8 0 ffsino 272 3486 0 2048 97 0 97 97 0 8 0 nchpl 144 5878 0 4237 63 0 63 63 0 8 0 uvmvnodes 80 3612 0 0 74 0 74 74 0 8 0 vnodes 216 3612 0 0 201 0 201 201 0 8 0 namei 1024 20668 0 20668 2 1 1 2 0 8 1 percpumem 16 44 0 1 1 0 1 1 0 8 0 kstatmem 264 24 0 2 2 0 2 2 0 8 0 scxspl 216 17188 0 17188 11 9 2 8 1 8 2 plimitpl 152 231 0 208 2 1 1 2 0 8 0 sigapl 424 1992 0 1938 7 0 7 7 0 8 0 futexpl 64 13586 0 13584 1 0 1 1 0 8 0 knotepl 120 138 0 0 4 0 4 4 0 8 0 kqueuepl 216 404 0 396 9 8 1 5 0 8 0 pipepl 320 564 0 536 15 12 3 8 0 8 0 fdescpl 496 1974 0 1939 7 2 5 6 0 8 0 filepl 152 12319 0 12085 31 19 12 19 0 8 2 lockfpl 104 275 0 273 1 0 1 1 0 8 0 lockfspl 48 109 0 107 1 0 1 1 0 8 0 sessionpl 144 24 0 8 1 0 1 1 0 8 0 pgrppl 48 36 0 20 1 0 1 1 0 8 0 ucredpl 104 2139 0 2121 1 0 1 1 0 8 0 zombiepl 144 1939 0 1938 1 0 1 1 0 8 0 processpl 1072 1992 0 1938 5 1 4 5 0 8 0 procpl 680 4947 0 4876 12 4 8 8 0 8 1 sosppl 168 25 0 25 1 1 0 1 0 8 0 sockpl 488 2820 0 2797 72 61 11 29 0 8 8 mcl64k 65536 13 0 0 2 0 2 2 0 8 0 mcl16k 16384 10 0 0 2 0 2 2 0 8 0 mcl12k 12288 11 0 0 2 0 2 2 0 8 0 mcl9k 9216 6 0 0 1 0 1 1 0 8 0 mcl8k 8192 10 0 0 2 0 2 2 0 8 0 mcl4k 4096 13 0 0 2 0 2 2 0 8 0 mcl2k2 2112 3 0 0 1 0 1 1 0 8 0 mcl2k 2048 314 0 0 40 0 40 40 0 8 0 mtagpl 96 1 0 0 1 0 1 1 0 8 0 mbufpl 256 315 0 0 20 0 20 20 0 8 0 bufpl 288 5809 0 143 405 0 405 405 0 8 0 anonpl 24 340841 0 329860 104 26 78 89 0 186 5 amapchunkpl 152 61730 0 60891 62 19 43 48 0 158 8 amappl16 200 8517 0 8237 33 16 17 27 0 8 0 amappl15 192 14 0 13 1 0 1 1 0 8 0 amappl14 184 150 0 137 2 1 1 2 0 8 0 amappl13 176 7 0 7 2 2 0 1 0 8 0 amappl12 168 2631 0 2594 2 0 2 2 0 8 0 amappl11 160 45 0 35 1 0 1 1 0 8 0 amappl10 152 32 0 21 1 0 1 1 0 8 0 amappl9 144 193 0 191 1 0 1 1 0 8 0 amappl8 136 226 0 160 3 0 3 3 0 8 0 amappl7 128 70 0 58 2 1 1 2 0 8 0 amappl6 120 289 0 270 2 1 1 2 0 8 0 amappl5 112 213 0 204 1 0 1 1 0 8 0 amappl4 104 593 0 556 3 1 2 3 0 8 0 amappl3 96 12294 0 12211 3 0 3 3 0 8 0 amappl2 88 2287 0 2218 3 1 2 3 0 8 0 amappl1 80 15216 0 14689 22 10 12 22 0 8 0 amappl 88 18527 0 18289 7 0 7 7 0 92 0 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 122 0 3 3 0 3 3 0 8 0 uaddrrnd 24 1974 0 1939 1 0 1 1 0 8 0 uaddrbest 32 2 0 0 1 0 1 1 0 8 0 uaddr 24 1974 0 1939 1 0 1 1 0 8 0 vmmpekpl 168 21413 0 21357 3 0 3 3 0 8 0 vmmpepl 168 135763 0 133457 139 33 106 124 0 357 0 vmsppl 464 1973 0 1939 7 2 5 6 0 8 0 rwobjpl 56 44542 0 39542 73 2 71 71 0 8 0 pdppl 4096 3956 0 3878 164 82 82 96 0 8 4 pvpl 32 799191 0 782171 364 126 238 363 0 265 93 pmappl 248 1973 0 1939 4 1 3 3 0 8 0 extentpl 40 56 0 38 1 0 1 1 0 8 0 phpool 112 932 0 131 23 0 23 23 0 8 0 ddb{0}> machine ddbcpu 0 Invalid cpu 0 ddb{0}> trace db_enter() at db_enter+0x1c sys/arch/amd64/amd64/db_interface.c:437 witness_checkorder(ffff8000ffff7bc8,9,0) at witness_checkorder+0x10b7 witness_debugger sys/kern/subr_witness.c:2510 [inline] witness_checkorder(ffff8000ffff7bc8,9,0) at witness_checkorder+0x10b7 sys/kern/subr_witness.c:1110 mtx_enter(ffff8000ffff7bb8) at mtx_enter+0x3e sys/kern/kern_lock.c:265 single_thread_set(ffff80002121a570,0,1) at single_thread_set+0x35a single_thread_wait sys/kern/kern_sig.c:2172 [inline] single_thread_set(ffff80002121a570,0,1) at single_thread_set+0x35a sys/kern/kern_sig.c:2155 sigexit(ffff80002121a570,6) at sigexit+0x90 sys/kern/kern_sig.c:1562 postsig(ffff80002121a570,6,ffff80002e419958) at postsig+0x4a9 sys/kern/kern_sig.c:1494 userret(ffff80002121a570) at userret+0x16e sys/kern/kern_sig.c:1987 syscall(ffff80002e419a90) at syscall+0x4e7 mi_syscall_return sys/sys/syscall_mi.h:137 [inline] syscall(ffff80002e419a90) at syscall+0x4e7 sys/arch/amd64/amd64/trap.c:644 Xsyscall() at Xsyscall+0x128 end of kernel end trace frame: 0x442a7071830, count: -9 ddb{0}> machine ddbcpu 1 Stopped at x86_ipi_db+0x1e: addq $0x8,%rsp ddb{1}> trace x86_ipi_db(ffff800020d58ff0) at x86_ipi_db+0x1e sys/arch/amd64/amd64/db_interface.c:393 x86_ipi_handler() at x86_ipi_handler+0xb7 sys/arch/amd64/amd64/ipi.c:106 Xresume_lapic_ipi() at Xresume_lapic_ipi+0x27 __mp_lock(ffffffff82ca0020) at __mp_lock+0x122 __mp_lock_spin sys/kern/kern_lock.c:116 [inline] __mp_lock(ffffffff82ca0020) at __mp_lock+0x122 sys/kern/kern_lock.c:147 syscall(ffff800027bb17d0) at syscall+0x5cd mi_syscall sys/sys/syscall_mi.h:110 [inline] syscall(ffff800027bb17d0) at syscall+0x5cd sys/arch/amd64/amd64/trap.c:623 Xsyscall() at Xsyscall+0x128 end of kernel end trace frame: 0x7d60109b2600, count: -6