On 24/06/24(Mon) 22:32, Dana Koch wrote: > Dana Koch <d...@google.com> schrieb am So., 23. Juni 2024, 19:50: > > > > Could you try the diff below? Stuart confirmed it prevents the hang on > > > his machine. > > > > This also seems to be working well for me so far. > > > > Okay, I've got an actual panic now, with similar reproduction steps > building LLVM instead of the kernel; not sure if this is related or > unrelated to the underlying problem, but here's a ddb session.
It's unrelated. The panic happens because as soon as a CPU enters ddb the locking is bypassed before all CPUs got parked. The issue has been identified. It's a starvation due to assumptions made in userland by the use of sched_yield(2). > I also remembered `show witness` which may or may not be helpful here, > pointing at a lock order reversal. > > > __mp_lock_spin: 0xffffff8001328528 lock spun out > Stopped at __mp_lock+0x138: ldr w8, [x23,#1352] > ddb{17}> __mp_lock_spin: 0xffffff8001328528 lock spun out > panic: kernel diagnostic assertion "uvm_page_owner_locked_p(pg)" failed: > file " > /home/dana/src/openbsd/openbsd-src/sys/uvm/uvm_page.c", line 1268 > > ddb{17}> trace__mp_lock_spin: 0xffffff8001328528 lock spun out > > db_enter() at __mp_lock+0x134 > __mp_lock() at svc_handler+0x42c > svc_handler() at do_el0_sync+0xc8 > do_el0_sync() at handle_el0_sync+0x70 > handle_el0_sync() at 0x46d2d0fe0 > --- trap --- > end of kernel > ddb{17}> ps /o > TID PID UID PRFLAGS PFLAGS CPU COMMAND > 483459 1841 1000 0x18000003 0 4 c++ > *507682 54858 1000 0x18000003 0 17 c++ > 491941 81792 1000 0x18000003 0 19 c++ > 92517 49319 1000 0x18000003 0 23 c++ > 479846 23280 1000 0x18000003 0 6 c++ > 200584 12281 1000 0x18000003 0 22 c++ > 421381 35598 1000 0x18000003 0 5 c++ > 44090 50287 1000 0x18000003 0 0 c++ > 188893 26365 1000 0x18000003 0 18 c++ > 74859 4393 1000 0x18000003 0 7 c++ > 208648 45008 1000 0x18000003 0 8 c++ > 97267 77502 1000 0x18000003 0 16 c++ > 174351 42043 1000 0x18000003 0 15 c++ > 501477 35285 1000 0x18000003 0 12 c++ > 255809 23573 1000 0x18000003 0 21 c++ > 106102 27978 1000 0x18000003 0 14 c++ > 294101 98084 1000 0x18000003 0 13 c++ > 76692 99593 1000 0x18000003 0 20 c++ > 520521 17740 1000 0x18000003 0 9 c++ > 343763 76972 1000 0x18000003 0 11 c++ > 372390 54052 1000 0x18000003 0 3 c++ > 435277 88527 1000 0x18000003 0 10 c++ > 99868 81397 0 0x14000 0x200 2 reaper > 321683 8245 0 0x14000 0x200 1K pagedaemon > ddb{17}> show all locks > CPU 1: > exclusive mutex &pmap->pm_mtx r = 0 (0xffffff816a2cbc48) > exclusive mutex &uvm.pageqlock r = 0 (0xffffff80012c5958) > Process 1841 (c++) thread 0xffffff8165132628 (483459) > exclusive rwlock amaplk r = 0 (0xffffff81654b01d8) > shared rwlock vmmaplk r = 0 (0xffffff816e1727e0) > Process 81792 (c++) thread 0xffffff8165133558 (491941) > exclusive rwlock amaplk r = 0 (0xffffff8176c011d8) > shared rwlock vmmaplk r = 0 (0xffffff809fe2ab48) > Process 49319 (c++) thread 0xffffff816d089570 (92517) > exclusive rwlock amaplk r = 0 (0xffffff816cb97c50) > shared rwlock vmmaplk r = 0 (0xffffff816ff25618) > Process 23280 (c++) thread 0xffffff816d088b50 (479846) > exclusive rwlock amaplk r = 0 (0xffffff8176c104e0) > shared rwlock vmmaplk r = 0 (0xffffff8167d8ab58) > Process 12281 (c++) thread 0xffffff816d0888c8 (200584) > exclusive rwlock amaplk r = 0 (0xffffff8176c100f0) > shared rwlock vmmaplk r = 0 (0xffffff809f81f460) > Process 35598 (c++) thread 0xffffff816d0883b8 (421381) > exclusive rwlock amaplk r = 0 (0xffffff8176c10e10) > shared rwlock vmmaplk r = 0 (0xffffff816ff25eb0) > Process 50287 (c++) thread 0xffffff816d089060 (44090) > exclusive rwlock amaplk r = 0 (0xffffff8176c10c88) > shared rwlock vmmaplk r = 0 (0xffffff816ff252a8) > Process 26365 (c++) thread 0xffffff816d0897f8 (188893) > exclusive rwlock amaplk r = 0 (0xffffff8176c10eb8) > shared rwlock vmmaplk r = 0 (0xffffff8176112b58) > Process 4393 (c++) thread 0xffffff8165133048 (74859) > exclusive rwlock amaplk r = 0 (0xffffff8176c10860) > shared rwlock vmmaplk r = 0 (0xffffff8176112ec8) > Process 45008 (c++) thread 0xffffff8165132dc0 (208648) > exclusive rwlock amaplk r = 0 (0xffffff8176c10320) > shared rwlock vmmaplk r = 0 (0xffffff81761127e8) > Process 77502 (c++) thread 0xffffff816ab95d00 (97267) > exclusive rwlock amaplk r = 0 (0xffffff8176c10048) > shared rwlock vmmaplk r = 0 (0xffffff81761129a0) > Process 42043 (c++) thread 0xffffff816ab95568 (174351) > exclusive rwlock amaplk r = 0 (0xffffff816a3a2f68) > shared rwlock vmmaplk r = 0 (0xffffff8176112d10) > Process 35285 (c++) thread 0xffffff81651343a8 (501477) > exclusive rwlock amaplk r = 0 (0xffffff8176c105c0) > shared rwlock vmmaplk r = 0 (0xffffff816eebcb48) > Process 23573 (c++) thread 0xffffff8165135560 (255809) > exclusive rwlock amaplk r = 0 (0xffffff8176c109e8) > shared rwlock vmmaplk r = 0 (0xffffff816eebc468) > Process 27978 (c++) thread 0xffffff8165135cf8 (106102) > exclusive rwlock amaplk r = 0 (0xffffff816da1acf8) > shared rwlock vmmaplk r = 0 (0xffffff816eebcd00) > Process 98084 (c++) thread 0xffffff81651352d8 (294101) > exclusive rwlock amaplk r = 0 (0xffffff8176c10080) > shared rwlock vmmaplk r = 0 (0xffffff816e172ec0) > Process 99593 (c++) thread 0xffffff8165132b38 (76692) > exclusive rwlock amaplk r = 0 (0xffffff816da1a7f0) > shared rwlock vmmaplk r = 0 (0xffffff816e172628) > Process 17740 (c++) thread 0xffffff816371e2b8 (520521) > exclusive rwlock amaplk r = 0 (0xffffff8176c109b0) > shared rwlock vmmaplk r = 0 (0xffffff8167d8a630) > Process 76972 (c++) thread 0xffffff82c5df3708 (343763) > exclusive rwlock amaplk r = 0 (0xffffff8176c10240) > shared rwlock vmmaplk r = 0 (0xffffff8167d8ad10) > Process 54052 (c++) thread 0xffffff816ab94638 (372390) > exclusive rwlock amaplk r = 0 (0xffffff8176c10cc0) > shared rwlock vmmaplk r = 0 (0xffffff809f7bbd00) > Process 88527 (c++) thread 0xffffff816ab95a78 (435277) > exclusive rwlock amaplk r = 0 (0xffffff81704a4590) > Process 81397 (reaper) thread 0xffffff8162de8f48 (99868) > exclusive rwlock amaplk r = 0 (0xffffff8176246780) > Process 8245 (pagedaemon) thread 0xffffff8162de91d0 (321683) > exclusive rwlock amaplk r = 0 (0xffffff816f569f28) > exclusive kernel_lock &kernel_lock r = 0 (0xffffff8001328d30) > ddb{17}> mach ddbcpu 0 > Stopped at __mp_lock+0x138: ldr w8, [x23,#1352] > TID PID UID PRFLAGS PFLAGS CPU COMMAND > 483459 1841 1000 0x18000003 0 4 c++ > 507682 54858 1000 0x18000003 0 17 c++ > 491941 81792 1000 0x18000003 0 19 c++ > 92517 49319 1000 0x18000003 0 23 c++ > 479846 23280 1000 0x18000003 0 6 c++ > 200584 12281 1000 0x18000003 0 22 c++ > 421381 35598 1000 0x18000003 0 5 c++ > * 44090 50287 1000 0x18000003 0 0 c++ > 188893 26365 1000 0x18000003 0 18 c++ > 74859 4393 1000 0x18000003 0 7 c++ > 208648 45008 1000 0x18000003 0 8 c++ > 97267 77502 1000 0x18000003 0 16 c++ > 174351 42043 1000 0x18000003 0 15 c++ > 501477 35285 1000 0x18000003 0 12 c++ > 255809 23573 1000 0x18000003 0 21 c++ > 106102 27978 1000 0x18000003 0 14 c++ > 294101 98084 1000 0x18000003 0 13 c++ > 76692 99593 1000 0x18000003 0 20 c++ > 520521 17740 1000 0x18000003 0 9 c++ > 343763 76972 1000 0x18000003 0 11 c++ > 372390 54052 1000 0x18000003 0 3 c++ > 435277 88527 1000 0x18000003 0 10 c++ > 99868 81397 0 0x14000 0x200 2 reaper > 321683 8245 0 0x14000 0x200 1K pagedaemon > db_enter() at __mp_lock+0x134 > __mp_lock() at aplintc_irq_handler+0x158 > aplintc_irq_handler() at arm_cpu_irq+0x34 > arm_cpu_irq() at handle_el1h_irq+0x68 > handle_el1h_irq() at db_enter_ddb+0x25c > db_enter_ddb() at kdb_trap+0x64 > kdb_trap() at db_trapper+0x30 > https://www.openbsd.org/ddb.html describes the minimum info required in bug > reports. Insufficient info makes it difficult to find and fix bugs. > ddb{0}> trace > db_enter() at __mp_lock+0x134 > __mp_lock() at aplintc_irq_handler+0x158 > aplintc_irq_handler() at arm_cpu_irq+0x34 > arm_cpu_irq() at handle_el1h_irq+0x68 > handle_el1h_irq() at db_enter_ddb+0x25c > db_enter_ddb() at kdb_trap+0x64 > kdb_trap() at db_trapper+0x30 > db_trapper() at handle_el1h_sync+0x68 > handle_el1h_sync() at db_enter+0x14 > db_enter() at aplintc_fiq_handler+0x6c > aplintc_fiq_handler() at arm_cpu_fiq+0x34 > arm_cpu_fiq() at handle_el1h_fiq+0x68 > handle_el1h_fiq() at aq_lookup+0x80 > aq_intr() at arm_cpu_irq+0x34 > arm_cpu_irq() at handle_el1h_irq+0x68 > handle_el1h_irq() at do_el1h_sync+0x24 > do_el1h_sync() at handle_el1h_sync+0x68 > handle_el1h_sync() at db_enter+0x14 > db_enter() at __mp_lock+0x134 > __mp_lock() at softintr_biglock_wrap+0x14 > softintr_biglock_wrap() at softintr_dispatch+0x84 > softintr_dispatch() at arm_do_pending_intr+0xfc > arm_do_pending_intr() at arm_cpu_fiq+0x34 > arm_cpu_fiq() at handle_el1h_fiq+0x68 > handle_el1h_fiq() at mtx_enter+0xe4 > mtx_enter() at uvm_fault_lower+0x630 > uvm_fault_lower() at uvm_fault+0x174 > uvm_fault() at udata_abort+0x138 > udata_abort() at do_el0_sync+0x130 > do_el0_sync() at handle_el0_sync+0x70 > handle_el0_sync() at __ALIGN_SIZE+0x573a8d4 > --- trap --- > end of kernel > ddb{0}> mach ddbcpu 1 > Stopped at aplintc_fiq_handler+0x70: b ffffff80006d17c4 > <aplin > tc_fiq_handler+0x7c> > db_enter() at aplintc_fiq_handler+0x6c > aplintc_fiq_handler() at arm_cpu_fiq+0x34 > arm_cpu_fiq() at handle_el1h_fiq+0x68 > handle_el1h_fiq() at do_el1h_sync+0x24 > do_el1h_sync() at handle_el1h_sync+0x68 > handle_el1h_sync() at db_enter+0x14 > db_enter() at panic+0x148 > ddb{1}> trace > db_enter() at aplintc_fiq_handler+0x6c > aplintc_fiq_handler() at arm_cpu_fiq+0x34 > arm_cpu_fiq() at handle_el1h_fiq+0x68 > handle_el1h_fiq() at do_el1h_sync+0x24 > do_el1h_sync() at handle_el1h_sync+0x68 > handle_el1h_sync() at db_enter+0x14 > db_enter() at panic+0x148 > panic() at __assert+0x28 > panic() at uvm_pagedeactivate+0x1cc > uvm_pagedeactivate() at uvmpd_scan+0x208 > uvmpd_scan() at uvm_pageout+0x2ac > uvm_pageout() at proc_trampoline+0xc > ddb{1}> mach ddbcpu 2 > Stopped at aplintc_fiq_handler+0x70: b ffffff80006d17c4 > <aplin > tc_fiq_handler+0x7c> > db_enter() at aplintc_fiq_handler+0x6c > aplintc_fiq_handler() at arm_cpu_fiq+0x34 > arm_cpu_fiq() at handle_el1h_fiq+0x68 > handle_el1h_fiq() at mtx_enter+0xe4 > mtx_enter() at uvm_anfree_list+0x68 > uvm_anfree_list() at amap_wipeout+0xf8 > amap_wipeout() at uvm_unmap_detach+0x70 > ddb{2}> trace > db_enter() at aplintc_fiq_handler+0x6c > aplintc_fiq_handler() at arm_cpu_fiq+0x34 > arm_cpu_fiq() at handle_el1h_fiq+0x68 > handle_el1h_fiq() at mtx_enter+0xe4 > mtx_enter() at uvm_anfree_list+0x68 > uvm_anfree_list() at amap_wipeout+0xf8 > amap_wipeout() at uvm_unmap_detach+0x70 > uvm_unmap_detach() at uvm_map_teardown+0x1a8 > uvm_map_teardown() at uvmspace_free+0x70 > uvmspace_free() at reaper+0x128 > reaper() at proc_trampoline+0xc > ddb{2}> mach ddbcpu 3 > Stopped at aplintc_fiq_handler+0x70: b ffffff80006d17c4 > <aplin > tc_fiq_handler+0x7c> > db_enter() at aplintc_fiq_handler+0x6c > aplintc_fiq_handler() at arm_cpu_fiq+0x34 > arm_cpu_fiq() at handle_el1h_fiq+0x68 > handle_el1h_fiq() at mtx_enter+0xe4 > mtx_enter() at uvm_fault_lower+0x630 > uvm_fault_lower() at uvm_fault+0x174 > uvm_fault() at udata_abort+0x138 > ddb{3}> trace > db_enter() at aplintc_fiq_handler+0x6c > aplintc_fiq_handler() at arm_cpu_fiq+0x34 > arm_cpu_fiq() at handle_el1h_fiq+0x68 > handle_el1h_fiq() at mtx_enter+0xe4 > mtx_enter() at uvm_fault_lower+0x630 > uvm_fault_lower() at uvm_fault+0x174 > uvm_fault() at udata_abort+0x138 > udata_abort() at do_el0_sync+0x130 > do_el0_sync() at handle_el0_sync+0x70 > handle_el0_sync() at 0x4e0de3264 > --- trap --- > end of kernel > ddb{3}> mach ddbcpu 4 > Stopped at aplintc_fiq_handler+0x70: b ffffff80006d17c4 > <aplin > tc_fiq_handler+0x7c> > db_enter() at aplintc_fiq_handler+0x6c > aplintc_fiq_handler() at arm_cpu_fiq+0x34 > arm_cpu_fiq() at handle_el1h_fiq+0x68 > handle_el1h_fiq() at mtx_enter+0xe4 > mtx_enter() at uvm_fault_upper+0x2a0 > uvm_fault_upper() at uvm_fault+0xb8 > uvm_fault() at udata_abort+0x138 > ddb{4}> trace > db_enter() at aplintc_fiq_handler+0x6c > aplintc_fiq_handler() at arm_cpu_fiq+0x34 > arm_cpu_fiq() at handle_el1h_fiq+0x68 > handle_el1h_fiq() at mtx_enter+0xe4 > mtx_enter() at uvm_fault_upper+0x2a0 > uvm_fault_upper() at uvm_fault+0xb8 > uvm_fault() at udata_abort+0x138 > udata_abort() at do_el0_sync+0x130 > do_el0_sync() at handle_el0_sync+0x70 > handle_el0_sync() at __ALIGN_SIZE+0x40c4134 > --- trap --- > end of kernel > ddb{4}> mach ddbcpu 5 > Stopped at aplintc_fiq_handler+0x70: b ffffff80006d17c4 > <aplin > tc_fiq_handler+0x7c> > db_enter() at aplintc_fiq_handler+0x6c > aplintc_fiq_handler() at arm_cpu_fiq+0x34 > arm_cpu_fiq() at handle_el1h_fiq+0x68 > handle_el1h_fiq() at mtx_enter+0xe4 > mtx_enter() at uvm_fault_lower+0x630 > uvm_fault_lower() at uvm_fault+0x174 > uvm_fault() at udata_abort+0x138 > ddb{5}> trace > db_enter() at aplintc_fiq_handler+0x6c > aplintc_fiq_handler() at arm_cpu_fiq+0x34 > arm_cpu_fiq() at handle_el1h_fiq+0x68 > handle_el1h_fiq() at mtx_enter+0xe4 > mtx_enter() at uvm_fault_lower+0x630 > uvm_fault_lower() at uvm_fault+0x174 > uvm_fault() at udata_abort+0x138 > udata_abort() at do_el0_sync+0x130 > do_el0_sync() at handle_el0_sync+0x70 > handle_el0_sync() at __ALIGN_SIZE+0x5702e90 > --- trap --- > end of kernel > ddb{5}> mach ddbcpu 6 > Stopped at aplintc_fiq_handler+0x70: b ffffff80006d17c4 > <aplin > tc_fiq_handler+0x7c> > db_enter() at aplintc_fiq_handler+0x6c > aplintc_fiq_handler() at arm_cpu_fiq+0x34 > arm_cpu_fiq() at handle_el1h_fiq+0x68 > handle_el1h_fiq() at mtx_enter+0xe4 > mtx_enter() at uvm_fault_lower+0x630 > uvm_fault_lower() at uvm_fault+0x174 > uvm_fault() at udata_abort+0x138 > ddb{6}> trace > db_enter() at aplintc_fiq_handler+0x6c > aplintc_fiq_handler() at arm_cpu_fiq+0x34 > arm_cpu_fiq() at handle_el1h_fiq+0x68 > handle_el1h_fiq() at mtx_enter+0xe4 > mtx_enter() at uvm_fault_lower+0x630 > uvm_fault_lower() at uvm_fault+0x174 > uvm_fault() at udata_abort+0x138 > udata_abort() at do_el0_sync+0x130 > do_el0_sync() at handle_el0_sync+0x70 > handle_el0_sync() at __ALIGN_SIZE+0x570296c > --- trap --- > end of kernel > ddb{6}> mach ddbcpu 7 > Stopped at aplintc_fiq_handler+0x70: b ffffff80006d17c4 > <aplin > tc_fiq_handler+0x7c> > db_enter() at aplintc_fiq_handler+0x6c > aplintc_fiq_handler() at arm_cpu_fiq+0x34 > arm_cpu_fiq() at handle_el1h_fiq+0x68 > handle_el1h_fiq() at mtx_enter+0xec > mtx_enter() at uvm_fault_lower+0x630 > uvm_fault_lower() at uvm_fault+0x174 > uvm_fault() at udata_abort+0x138 > ddb{7}> trace > db_enter() at aplintc_fiq_handler+0x6c > aplintc_fiq_handler() at arm_cpu_fiq+0x34 > arm_cpu_fiq() at handle_el1h_fiq+0x68 > handle_el1h_fiq() at mtx_enter+0xec > mtx_enter() at uvm_fault_lower+0x630 > uvm_fault_lower() at uvm_fault+0x174 > uvm_fault() at udata_abort+0x138 > udata_abort() at do_el0_sync+0x130 > do_el0_sync() at handle_el0_sync+0x70 > handle_el0_sync() at __ALIGN_SIZE+0x5999d20 > --- trap --- > end of kernel > ddb{7}> mach ddbcpu 8 > Stopped at aplintc_fiq_handler+0x70: b ffffff80006d17c4 > <aplin > tc_fiq_handler+0x7c> > db_enter() at aplintc_fiq_handler+0x6c > aplintc_fiq_handler() at arm_cpu_fiq+0x34 > arm_cpu_fiq() at handle_el1h_fiq+0x68 > handle_el1h_fiq() at mtx_enter+0xec > mtx_enter() at uvm_fault_lower+0x630 > uvm_fault_lower() at uvm_fault+0x174 > uvm_fault() at udata_abort+0x138 > ddb{8}> trace > db_enter() at aplintc_fiq_handler+0x6c > aplintc_fiq_handler() at arm_cpu_fiq+0x34 > arm_cpu_fiq() at handle_el1h_fiq+0x68 > handle_el1h_fiq() at mtx_enter+0xec > mtx_enter() at uvm_fault_lower+0x630 > uvm_fault_lower() at uvm_fault+0x174 > uvm_fault() at udata_abort+0x138 > udata_abort() at do_el0_sync+0x130 > do_el0_sync() at handle_el0_sync+0x70 > handle_el0_sync() at __ALIGN_SIZE+0x5914b74 > --- trap --- > end of kernel > ddb{8}> mach ddbcpu 9 > Stopped at aplintc_fiq_handler+0x70: b ffffff80006d17c4 > <aplin > tc_fiq_handler+0x7c> > db_enter() at aplintc_fiq_handler+0x6c > aplintc_fiq_handler() at arm_cpu_fiq+0x34 > arm_cpu_fiq() at handle_el1h_fiq+0x68 > handle_el1h_fiq() at mtx_enter+0xe4 > mtx_enter() at uvm_fault_lower+0x630 > uvm_fault_lower() at uvm_fault+0x174 > uvm_fault() at udata_abort+0x138 > ddb{9}> trace > db_enter() at aplintc_fiq_handler+0x6c > aplintc_fiq_handler() at arm_cpu_fiq+0x34 > arm_cpu_fiq() at handle_el1h_fiq+0x68 > handle_el1h_fiq() at mtx_enter+0xe4 > mtx_enter() at uvm_fault_lower+0x630 > uvm_fault_lower() at uvm_fault+0x174 > uvm_fault() at udata_abort+0x138 > udata_abort() at do_el0_sync+0x130 > do_el0_sync() at handle_el0_sync+0x70 > handle_el0_sync() at __ALIGN_SIZE+0x5914b74 > --- trap --- > end of kernel > ddb{9}> mach ddbcpu 0xa > Stopped at aplintc_fiq_handler+0x70: b ffffff80006d17c4 > <aplin > tc_fiq_handler+0x7c> > db_enter() at aplintc_fiq_handler+0x6c > aplintc_fiq_handler() at arm_cpu_fiq+0x34 > arm_cpu_fiq() at handle_el1h_fiq+0x68 > handle_el1h_fiq() at mtx_enter+0xec > mtx_enter() at uvm_anfree_list+0x68 > uvm_anfree_list() at amap_wiperange_chunk+0x100 > amap_wiperange_chunk() at amap_wiperange+0x18c > ddb{10}> trace > db_enter() at aplintc_fiq_handler+0x6c > aplintc_fiq_handler() at arm_cpu_fiq+0x34 > arm_cpu_fiq() at handle_el1h_fiq+0x68 > handle_el1h_fiq() at mtx_enter+0xec > mtx_enter() at uvm_anfree_list+0x68 > uvm_anfree_list() at amap_wiperange_chunk+0x100 > amap_wiperange_chunk() at amap_wiperange+0x18c > amap_wiperange() at amap_pp_adjref+0x28c > amap_pp_adjref() at amap_adjref_anons+0xf0 > amap_adjref_anons() at uvm_unmap_detach+0x70 > uvm_unmap_detach() at sys_munmap+0x128 > sys_munmap() at svc_handler+0x478 > svc_handler() at do_el0_sync+0xc8 > do_el0_sync() at handle_el0_sync+0x70 > handle_el0_sync() at 0x4f73673c8 > --- trap --- > end of kernel > ddb{10}> mach ddbcpu 0xb > Stopped at aplintc_fiq_handler+0x70: b ffffff80006d17c4 > <aplin > tc_fiq_handler+0x7c> > db_enter() at aplintc_fiq_handler+0x6c > aplintc_fiq_handler() at arm_cpu_fiq+0x34 > arm_cpu_fiq() at handle_el1h_fiq+0x68 > handle_el1h_fiq() at mtx_enter+0xec > mtx_enter() at uvm_fault_lower+0x630 > uvm_fault_lower() at uvm_fault+0x174 > uvm_fault() at udata_abort+0x138 > ddb{11}> trace > db_enter() at aplintc_fiq_handler+0x6c > aplintc_fiq_handler() at arm_cpu_fiq+0x34 > arm_cpu_fiq() at handle_el1h_fiq+0x68 > handle_el1h_fiq() at mtx_enter+0xec > mtx_enter() at uvm_fault_lower+0x630 > uvm_fault_lower() at uvm_fault+0x174 > uvm_fault() at udata_abort+0x138 > udata_abort() at do_el0_sync+0x130 > do_el0_sync() at handle_el0_sync+0x70 > handle_el0_sync() at __ALIGN_SIZE+0x59245b4 > --- trap --- > end of kernel > ddb{11}> mach ddbcpu 0xc > Stopped at aplintc_fiq_handler+0x70: b ffffff80006d17c4 > <aplin > tc_fiq_handler+0x7c> > db_enter() at aplintc_fiq_handler+0x6c > aplintc_fiq_handler() at arm_cpu_fiq+0x34 > arm_cpu_fiq() at handle_el1h_fiq+0x68 > handle_el1h_fiq() at mtx_enter+0xe4 > mtx_enter() at uvm_fault_lower+0x630 > uvm_fault_lower() at uvm_fault+0x174 > uvm_fault() at udata_abort+0x138 > ddb{12}> trace > db_enter() at aplintc_fiq_handler+0x6c > aplintc_fiq_handler() at arm_cpu_fiq+0x34 > arm_cpu_fiq() at handle_el1h_fiq+0x68 > handle_el1h_fiq() at mtx_enter+0xe4 > mtx_enter() at uvm_fault_lower+0x630 > uvm_fault_lower() at uvm_fault+0x174 > uvm_fault() at udata_abort+0x138 > udata_abort() at do_el0_sync+0x130 > do_el0_sync() at handle_el0_sync+0x70 > handle_el0_sync() at __ALIGN_SIZE+0x5914b74 > --- trap --- > end of kernel > ddb{12}> mach ddbcpu 0xd > Stopped at aplintc_fiq_handler+0x70: b ffffff80006d17c4 > <aplin > tc_fiq_handler+0x7c> > db_enter() at aplintc_fiq_handler+0x6c > aplintc_fiq_handler() at arm_cpu_fiq+0x34 > arm_cpu_fiq() at handle_el1h_fiq+0x68 > handle_el1h_fiq() at mtx_enter+0xe4 > mtx_enter() at uvm_fault_lower+0x630 > uvm_fault_lower() at uvm_fault+0x174 > uvm_fault() at udata_abort+0x138 > ddb{13}> trace > db_enter() at aplintc_fiq_handler+0x6c > aplintc_fiq_handler() at arm_cpu_fiq+0x34 > arm_cpu_fiq() at handle_el1h_fiq+0x68 > handle_el1h_fiq() at mtx_enter+0xe4 > mtx_enter() at uvm_fault_lower+0x630 > uvm_fault_lower() at uvm_fault+0x174 > uvm_fault() at udata_abort+0x138 > udata_abort() at do_el0_sync+0x130 > do_el0_sync() at handle_el0_sync+0x70 > handle_el0_sync() at __ALIGN_SIZE+0x4fdc1c0 > --- trap --- > end of kernel > ddb{13}> mach ddbcpu 0xe > Stopped at aplintc_fiq_handler+0x70: b ffffff80006d17c4 > <aplin > tc_fiq_handler+0x7c> > db_enter() at aplintc_fiq_handler+0x6c > aplintc_fiq_handler() at arm_cpu_fiq+0x34 > arm_cpu_fiq() at handle_el1h_fiq+0x68 > handle_el1h_fiq() at mtx_enter+0xe4 > mtx_enter() at uvm_fault_lower+0x630 > uvm_fault_lower() at uvm_fault+0x174 > uvm_fault() at udata_abort+0x138 > ddb{14}> trace > db_enter() at aplintc_fiq_handler+0x6c > aplintc_fiq_handler() at arm_cpu_fiq+0x34 > arm_cpu_fiq() at handle_el1h_fiq+0x68 > handle_el1h_fiq() at mtx_enter+0xe4 > mtx_enter() at uvm_fault_lower+0x630 > uvm_fault_lower() at uvm_fault+0x174 > uvm_fault() at udata_abort+0x138 > udata_abort() at do_el0_sync+0x130 > do_el0_sync() at handle_el0_sync+0x70 > handle_el0_sync() at __ALIGN_SIZE+0x57038b8 > --- trap --- > end of kernel > ddb{14}> mach ddbcpu 0xf > Stopped at aplintc_fiq_handler+0x70: b ffffff80006d17c4 > <aplin > tc_fiq_handler+0x7c> > db_enter() at aplintc_fiq_handler+0x6c > aplintc_fiq_handler() at arm_cpu_fiq+0x34 > arm_cpu_fiq() at handle_el1h_fiq+0x68 > handle_el1h_fiq() at mtx_enter+0xec > mtx_enter() at uvm_fault_lower+0x630 > uvm_fault_lower() at uvm_fault+0x174 > uvm_fault() at udata_abort+0x138 > ddb{15}> trace > db_enter() at aplintc_fiq_handler+0x6c > aplintc_fiq_handler() at arm_cpu_fiq+0x34 > arm_cpu_fiq() at handle_el1h_fiq+0x68 > handle_el1h_fiq() at mtx_enter+0xec > mtx_enter() at uvm_fault_lower+0x630 > uvm_fault_lower() at uvm_fault+0x174 > uvm_fault() at udata_abort+0x138 > udata_abort() at do_el0_sync+0x130 > do_el0_sync() at handle_el0_sync+0x70 > handle_el0_sync() at __ALIGN_SIZE+0x5914b1c > --- trap --- > end of kernel > ddb{15}> mach ddbcpu 0x10 > Stopped at aplintc_fiq_handler+0x70: b ffffff80006d17c4 > <aplin > tc_fiq_handler+0x7c> > db_enter() at aplintc_fiq_handler+0x6c > aplintc_fiq_handler() at arm_cpu_fiq+0x34 > arm_cpu_fiq() at handle_el1h_fiq+0x68 > handle_el1h_fiq() at mtx_enter+0xec > mtx_enter() at uvm_fault_lower+0x630 > uvm_fault_lower() at uvm_fault+0x174 > uvm_fault() at udata_abort+0x138 > ddb{16}> trace > db_enter() at aplintc_fiq_handler+0x6c > aplintc_fiq_handler() at arm_cpu_fiq+0x34 > arm_cpu_fiq() at handle_el1h_fiq+0x68 > handle_el1h_fiq() at mtx_enter+0xec > mtx_enter() at uvm_fault_lower+0x630 > uvm_fault_lower() at uvm_fault+0x174 > uvm_fault() at udata_abort+0x138 > udata_abort() at do_el0_sync+0x130 > do_el0_sync() at handle_el0_sync+0x70 > handle_el0_sync() at __ALIGN_SIZE+0x4e63188 > --- trap --- > end of kernel > ddb{16}> mach ddbcpu 0x11 > Stopped at __mp_lock+0x138: ldr w8, [x23,#1352] > db_enter() at __mp_lock+0x134 > __mp_lock() at svc_handler+0x42c > svc_handler() at do_el0_sync+0xc8 > do_el0_sync() at handle_el0_sync+0x70 > handle_el0_sync() at 0x46d2d0fe0 > --- trap --- > end of kernel > ddb{17}> trace > db_enter() at __mp_lock+0x134 > __mp_lock() at svc_handler+0x42c > svc_handler() at do_el0_sync+0xc8 > do_el0_sync() at handle_el0_sync+0x70 > handle_el0_sync() at 0x46d2d0fe0 > --- trap --- > end of kernel > ddb{17}> mach ddbcpu 0x12 > Stopped at aplintc_fiq_handler+0x70: b ffffff80006d17c4 > <aplin > tc_fiq_handler+0x7c> > db_enter() at aplintc_fiq_handler+0x6c > aplintc_fiq_handler() at arm_cpu_fiq+0x34 > arm_cpu_fiq() at handle_el1h_fiq+0x68 > handle_el1h_fiq() at mtx_enter+0xe4 > mtx_enter() at uvm_fault_lower+0x630 > uvm_fault_lower() at uvm_fault+0x174 > uvm_fault() at udata_abort+0x138 > ddb{18}> trace > db_enter() at aplintc_fiq_handler+0x6c > aplintc_fiq_handler() at arm_cpu_fiq+0x34 > arm_cpu_fiq() at handle_el1h_fiq+0x68 > handle_el1h_fiq() at mtx_enter+0xe4 > mtx_enter() at uvm_fault_lower+0x630 > uvm_fault_lower() at uvm_fault+0x174 > uvm_fault() at udata_abort+0x138 > udata_abort() at do_el0_sync+0x130 > do_el0_sync() at handle_el0_sync+0x70 > handle_el0_sync() at __ALIGN_SIZE+0x5933dd8 > --- trap --- > end of kernel > ddb{18}> mach ddbcpu 0x13 > Stopped at aplintc_fiq_handler+0x70: b ffffff80006d17c4 > <aplin > tc_fiq_handler+0x7c> > db_enter() at aplintc_fiq_handler+0x6c > aplintc_fiq_handler() at arm_cpu_fiq+0x34 > arm_cpu_fiq() at handle_el1h_fiq+0x68 > handle_el1h_fiq() at mtx_enter+0xe4 > mtx_enter() at uvm_fault_lower+0x630 > uvm_fault_lower() at uvm_fault+0x174 > uvm_fault() at udata_abort+0x138 > ddb{19}> trace > db_enter() at aplintc_fiq_handler+0x6c > aplintc_fiq_handler() at arm_cpu_fiq+0x34 > arm_cpu_fiq() at handle_el1h_fiq+0x68 > handle_el1h_fiq() at mtx_enter+0xe4 > mtx_enter() at uvm_fault_lower+0x630 > uvm_fault_lower() at uvm_fault+0x174 > uvm_fault() at udata_abort+0x138 > udata_abort() at do_el0_sync+0x130 > do_el0_sync() at handle_el0_sync+0x70 > handle_el0_sync() at 0x4819ddc40 > --- trap --- > end of kernel > ddb{19}> mach ddbcpu 0x14 > Stopped at aplintc_fiq_handler+0x70: b ffffff80006d17c4 > <aplin > tc_fiq_handler+0x7c> > db_enter() at aplintc_fiq_handler+0x6c > aplintc_fiq_handler() at arm_cpu_fiq+0x34 > arm_cpu_fiq() at handle_el1h_fiq+0x68 > handle_el1h_fiq() at mtx_enter+0xe4 > mtx_enter() at uvm_fault_lower+0x630 > uvm_fault_lower() at uvm_fault+0x174 > uvm_fault() at udata_abort+0x138 > ddb{20}> trace > db_enter() at aplintc_fiq_handler+0x6c > aplintc_fiq_handler() at arm_cpu_fiq+0x34 > arm_cpu_fiq() at handle_el1h_fiq+0x68 > handle_el1h_fiq() at mtx_enter+0xe4 > mtx_enter() at uvm_fault_lower+0x630 > uvm_fault_lower() at uvm_fault+0x174 > uvm_fault() at udata_abort+0x138 > udata_abort() at do_el0_sync+0x130 > do_el0_sync() at handle_el0_sync+0x70 > handle_el0_sync() at __ALIGN_SIZE+0x58958ac > --- trap --- > end of kernel > ddb{20}> mach ddbcpu 0x15 > Stopped at aplintc_fiq_handler+0x70: b ffffff80006d17c4 > <aplin > tc_fiq_handler+0x7c> > db_enter() at aplintc_fiq_handler+0x6c > aplintc_fiq_handler() at arm_cpu_fiq+0x34 > arm_cpu_fiq() at handle_el1h_fiq+0x68 > handle_el1h_fiq() at mtx_enter+0xe4 > mtx_enter() at uvm_fault_lower+0x630 > uvm_fault_lower() at uvm_fault+0x174 > uvm_fault() at udata_abort+0x138 > ddb{21}> trace > db_enter() at aplintc_fiq_handler+0x6c > aplintc_fiq_handler() at arm_cpu_fiq+0x34 > arm_cpu_fiq() at handle_el1h_fiq+0x68 > handle_el1h_fiq() at mtx_enter+0xe4 > mtx_enter() at uvm_fault_lower+0x630 > uvm_fault_lower() at uvm_fault+0x174 > uvm_fault() at udata_abort+0x138 > udata_abort() at do_el0_sync+0x130 > do_el0_sync() at handle_el0_sync+0x70 > handle_el0_sync() at __ALIGN_SIZE+0x4e63188 > --- trap --- > end of kernel > ddb{21}> mach ddbcpu 0x16 > Stopped at aplintc_fiq_handler+0x70: b ffffff80006d17c4 > <aplin > tc_fiq_handler+0x7c> > db_enter() at aplintc_fiq_handler+0x6c > aplintc_fiq_handler() at arm_cpu_fiq+0x34 > arm_cpu_fiq() at handle_el1h_fiq+0x68 > handle_el1h_fiq() at mtx_enter+0xec > mtx_enter() at uvm_fault_lower+0x630 > uvm_fault_lower() at uvm_fault+0x174 > uvm_fault() at udata_abort+0x138 > ddb{22}> trace > db_enter() at aplintc_fiq_handler+0x6c > aplintc_fiq_handler() at arm_cpu_fiq+0x34 > arm_cpu_fiq() at handle_el1h_fiq+0x68 > handle_el1h_fiq() at mtx_enter+0xec > mtx_enter() at uvm_fault_lower+0x630 > uvm_fault_lower() at uvm_fault+0x174 > uvm_fault() at udata_abort+0x138 > udata_abort() at do_el0_sync+0x130 > do_el0_sync() at handle_el0_sync+0x70 > handle_el0_sync() at __ALIGN_SIZE+0x594b754 > --- trap --- > end of kernel > ddb{22}> mach ddbcpu 0x17 > Stopped at aplintc_fiq_handler+0x70: b ffffff80006d17c4 > <aplin > tc_fiq_handler+0x7c> > db_enter() at aplintc_fiq_handler+0x6c > aplintc_fiq_handler() at arm_cpu_fiq+0x34 > arm_cpu_fiq() at handle_el1h_fiq+0x68 > handle_el1h_fiq() at mtx_enter+0xe4 > mtx_enter() at uvm_fault_lower+0x630 > uvm_fault_lower() at uvm_fault+0x174 > uvm_fault() at udata_abort+0x138 > ddb{23}> trace > db_enter() at aplintc_fiq_handler+0x6c > aplintc_fiq_handler() at arm_cpu_fiq+0x34 > arm_cpu_fiq() at handle_el1h_fiq+0x68 > handle_el1h_fiq() at mtx_enter+0xe4 > mtx_enter() at uvm_fault_lower+0x630 > uvm_fault_lower() at uvm_fault+0x174 > uvm_fault() at udata_abort+0x138 > udata_abort() at do_el0_sync+0x130 > do_el0_sync() at handle_el0_sync+0x70 > handle_el0_sync() at __ALIGN_SIZE+0x57038b8 > --- trap --- > end of kernel > ddb{23}> > ddb{23}> show witness /b > Number of known direct relationships is 481 > > Lock order reversal between "&mp->mnt_lock"(rwlock) and > "&ip->i_lock"(rrwlock)! > > witness: incomplete path, depth 4 > ddb{23}> show panic > *cpu1: kernel diagnostic assertion "uvm_page_owner_locked_p(pg)" failed: > file " > /home/dana/src/openbsd/openbsd-src/sys/uvm/uvm_page.c", line 1268