On Tue, Jun 25, 2024 at 11:21:52AM +0200, Martin Pieuchot wrote: > 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).
This is a different issue of the same kind. There is not a single sched_yield(2) in the backtrace. The KERNEL_LOCK spun out because of some other lock holding up everything. Maybe this time uvm.pageqlock is so contended that this happens. In general the issue has been identified, mutexes on arm64 suck. Using MP_LOCKDEBUG on arm64 will trigger too often on false positives. > > 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 > -- :wq Claudio