Rpi3, -current, panic: data abort with spinlock held

From: bob prohaska <fbsd_at_www.zefox.net>
Date: Sun, 06 Feb 2022 20:08:40 UTC
[repost, apologies if duplicate]

While running -current on a Pi3, up to date as of a few days ago,
an invocation of stress2 triggered the following panic:

20220205 10:25:26 all (7/809): arp.sh
panic: data abort with spinlock held
cpuid = 0
time = 1644085599
KDB: stack backtrace:
db_trace_self() at db_trace_self
db_trace_self_wrapper() at db_trace_self_wrapper+0x30
vpanic() at vpanic+0x174
panic() at panic+0x44
data_abort() at data_abort+0x2a0
handle_el1h_sync() at handle_el1h_sync+0x10
--- exception, esr 0x96000007
generic_bs_rr_4() at generic_bs_rr_4+0xc
dwc_otg_interrupt_poll_locked() at dwc_otg_interrupt_poll_locked+0x69c
dwc_otg_filter_interrupt() at dwc_otg_filter_interrupt+0x130
intr_event_handle() at intr_event_handle+0xf0
intr_isrc_dispatch() at intr_isrc_dispatch+0x74
bcm2835_intc_intr() at bcm2835_intc_intr+0xa4
intr_event_handle() at intr_event_handle+0xf0
intr_isrc_dispatch() at intr_isrc_dispatch+0x74
bcm_lintc_intr() at bcm_lintc_intr+0x1d8
intr_irq_handler() at intr_irq_handler+0x80
handle_el1h_irq() at handle_el1h_irq+0xc
--- interrupt
pcpu_cache_drain_safe() at pcpu_cache_drain_safe+0x2dc
uma_reclaim_domain() at uma_reclaim_domain+0x1e4
uma_reclaim_worker() at uma_reclaim_worker+0x68
fork_exit() at fork_exit+0x74
fork_trampoline() at fork_trampoline+0x14
KDB: enter: panic
[ thread pid 6 tid 100076 ]
Stopped at      kdb_enter+0x44: undefined       f901c11f
db>   bt
Tracing pid 6 tid 100076 td 0xffffa000012dc000
db_trace_self() at db_trace_self
db_stack_trace() at db_stack_trace+0x11c
db_command() at db_command+0x368
db_command_loop() at db_command_loop+0x54
db_trap() at db_trap+0xf8
kdb_trap() at kdb_trap+0x1cc
handle_el1h_sync() at handle_el1h_sync+0x10
--- exception, esr 0xf2000000
kdb_enter() at kdb_enter+0x44
vpanic() at vpanic+0x1b0
panic() at panic+0x44
data_abort() at data_abort+0x2a0
handle_el1h_sync() at handle_el1h_sync+0x10
--- exception, esr 0x96000007
generic_bs_rr_4() at generic_bs_rr_4+0xc
dwc_otg_interrupt_poll_locked() at dwc_otg_interrupt_poll_locked+0x69c
dwc_otg_filter_interrupt() at dwc_otg_filter_interrupt+0x130
intr_event_handle() at intr_event_handle+0xf0
intr_isrc_dispatch() at intr_isrc_dispatch+0x74
bcm2835_intc_intr() at bcm2835_intc_intr+0xa4
intr_event_handle() at intr_event_handle+0xf0
intr_isrc_dispatch() at intr_isrc_dispatch+0x74
bcm_lintc_intr() at bcm_lintc_intr+0x1d8
intr_irq_handler() at intr_irq_handler+0x80
handle_el1h_irq() at handle_el1h_irq+0xc
--- interrupt
pcpu_cache_drain_safe() at pcpu_cache_drain_safe+0x2dc
uma_reclaim_domain() at uma_reclaim_domain+0x1e4
uma_reclaim_worker() at uma_reclaim_worker+0x68
fork_exit() at fork_exit+0x74
fork_trampoline() at fork_trampoline+0x14
db> 

Thanks for reading, if more details are wanted I'll try to
supply them. I have tried to update and rebuild, but the
builds stop with:
/usr/src/contrib/llvm-project/llvm/lib/Target/X86/MCTargetDesc/X86ATTInstPrinter.cpp:38:6: error: expected '(' for function-style cast or type construction
void X86ATTInstPrinter::printRegName(raw_ostream &OS, unsigned RegNo) const {
~~~ ^
 

bob prohaska


----- End forwarded message -----