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

From: Mark Millard <marklmi_at_yahoo.com>
Date: Sat, 09 Apr 2022 00:15:48 UTC
On 2022-Apr-8, at 16:08, bob prohaska <fbsd@www.zefox.net> wrote:

> Here's an example of a crash on an RPI3 running -current that was
> updated the morning of April 8th. The build command was
> make -j3 -DWITH_META_MODE > buildworld.log
> 
> The panic started with 
> panic: data abort with spinlock held
> 
> The crashing kernel reports
> FreeBSD 14.0-CURRENT #36 main-n254371-fb8c87b4f3b: Tue Apr  5 22:20:39 PDT 2022
> 
> The machine uses a USB mechanical hard drive for root, with 3547 MB of swap.
> Only about 10% of swap was in use when it crashed.
> 
> The console output, final top window and buildworld log are at
> http://www.zefox.net/~fbsd/rpi3/crashes/20220408/

I'm just including the backtrace so it is visible on the
list without having to go exploring. It might help folks
decide if they want to do that exploring or are otherwise
interested.

General nested structure (bottom to top
of the backtrace below):

interrupt leads to exception,
then interrupt, which leads to exception,
which leads to panic.

The backtrace:

login: panic: data abort with spinlock held
cpuid = 0
time = 1649444088
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+0x2a8
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
data_abort() at data_abort+0x14c
handle_el1h_sync() at handle_el1h_sync+0x10
--- exception, esr 0x96000006
dwc_otg_host_data_rx() at dwc_otg_host_data_rx+0x260
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_el0_irq() at handle_el0_irq+0x38
--- interrupt
KDB: enter: panic
[ thread pid 83684 tid 100210 ]
Stopped at      kdb_enter+0x44: undefined       f902011f
db> 


===
Mark Millard
marklmi at yahoo.com