A native armv7 panic during kyua runs: sys/netinet6/exthdr:exthdr -> Fatal kernel mode data abort: 'Alignment Fault' on read

Mark Millard <[email protected]>
Newsgroups gmane.os.freebsd.devel.arm,gmane.os.freebsd.current
Message-ID <[email protected]>
While discovered via an attempted overall kyua run, the following is
sufficient to get the crash in my native armv7 context:

# /usr/bin/kyua test -k /usr/tests/Kyuafile sys/netinet6/exthdr:exthdr
sys/netinet6/exthdr:exthdr  ->  Fatal kernel mode data abort: 'Alignment Fault' on read
trapframe: 0xdfb97aa0
FSR=00000001, FAR=db43ab76, spsr=60000013
r0 =dfedd000, r1 =dfb97b34, r2 =00000000, r3 =00000000
r4 =00000000, r5 =00000000, r6 =db43ab76, r7 =db43ab66
r8 =c096383c, r9 =00000000, r10=db132400, r11=dfb97b60
r12=00000000, ssp=dfb97b30, slr=c0b4e2c0, pc =c04e6b70

panic: Fatal abort
cpuid = 0
time = 1691131498
KDB: stack backtrace:
db_trace_self() at db_trace_self
         pc = 0xc065f414  lr = 0xc007db80 (db_trace_self_wrapper+0x30)
         sp = 0xdfb97858  fp = 0xdfb97970
db_trace_self_wrapper() at db_trace_self_wrapper+0x30
         pc = 0xc007db80  lr = 0xc031a834 (vpanic+0x140)
         sp = 0xdfb97978  fp = 0xdfb97998
         r4 = 0x00000100  r5 = 0x00000000
         r6 = 0xc07c369a  r7 = 0xc0b32e58
vpanic() at vpanic+0x140
         pc = 0xc031a834  lr = 0xc031a6f4 (vpanic)
         sp = 0xdfb979a0  fp = 0xdfb979a4
         r4 = 0xdfb97aa0  r5 = 0x00000013
         r6 = 0xdb43ab76  r7 = 0x00000001
         r8 = 0x00000001  r9 = 0xdfedd000
        r10 = 0xdb43ab76
vpanic() at vpanic
         pc = 0xc031a6f4  lr = 0xc06849dc (abort_align)
         sp = 0xdfb979ac  fp = 0xdfb979d8
         r4 = 0x00000001  r5 = 0x00000001
         r6 = 0xdfedd000  r7 = 0xdb43ab76
         r8 = 0xdfb979a4  r9 = 0xc031a6f4
        r10 = 0xdfb979ac
abort_align() at abort_align
         pc = 0xc06849dc  lr = 0xc0684a50 (abort_align+0x74)
         sp = 0xdfb979e0  fp = 0xdfb979f8
         r4 = 0x00000013 r10 = 0xdb43ab76
abort_align() at abort_align+0x74
         pc = 0xc0684a50  lr = 0xc06846a8 (abort_handler+0x45c)
         sp = 0xdfb97a00  fp = 0xdfb97a98
         r4 = 0x00000000 r10 = 0xdb43ab76
abort_handler() at abort_handler+0x45c
         pc = 0xc06846a8  lr = 0xc0661cc8 (exception_exit)
         sp = 0xdfb97aa0  fp = 0xdfb97b60
         r4 = 0x00000000  r5 = 0x00000000
         r6 = 0xdb43ab76  r7 = 0xdb43ab66
         r8 = 0xc096383c  r9 = 0x00000000
        r10 = 0xdb132400
exception_exit() at exception_exit
         pc = 0xc0661cc8  lr = 0xc0b4e2c0 (__pcpu)
         sp = 0xdfb97b30  fp = 0xdfb97b60
         r0 = 0xdfedd000  r1 = 0xdfb97b34
         r2 = 0x00000000  r3 = 0x00000000
         r4 = 0x00000000  r5 = 0x00000000
         r6 = 0xdb43ab76  r7 = 0xdb43ab66
         r8 = 0xc096383c  r9 = 0x00000000
        r10 = 0xdb132400 r12 = 0x00000000
in6ifa_ifwithaddr() at in6ifa_ifwithaddr+0x30
         pc = 0xc04e6b70  lr = 0xc04f9030 (ip6_input+0xd38)
         sp = 0xdfb97b68  fp = 0xdfb97c28
         r4 = 0xdb43ab76  r5 = 0xdb43ab5e
         r6 = 0x00000000  r7 = 0xdb43ab66
ip6_input() at ip6_input+0xd38
         pc = 0xc04f9030  lr = 0xc046d66c (netisr_dispatch_src+0xf8)
         sp = 0xdfb97c30  fp = 0xdfb97c58
         r4 = 0xdb43ab00  r5 = 0x00000006
         r6 = 0x00000007  r7 = 0xc0b49d50
         r8 = 0xdafea0c0  r9 = 0xdb43ab00
        r10 = 0x00000086
netisr_dispatch_src() at netisr_dispatch_src+0xf8
         pc = 0xc046d66c  lr = 0xc04641b0 (ether_demux+0x18c)
         sp = 0xdfb97c60  fp = 0xdfb97c78
         r4 = 0x00000006  r5 = 0x00001201
         r6 = 0xdb132400  r7 = 0x000000ff
         r8 = 0xdafea0c0  r9 = 0xdb43ab00
        r10 = 0x00000086
ether_demux() at ether_demux+0x18c
         pc = 0xc04641b0  lr = 0xc0465880 (ether_nh_input+0x490)
         sp = 0xdfb97c80  fp = 0xdfb97ce0
         r4 = 0xdb132400  r5 = 0xdb43ab00
         r6 = 0xdb43ab50 r10 = 0x00000086
ether_nh_input() at ether_nh_input+0x490
         pc = 0xc0465880  lr = 0xc046d66c (netisr_dispatch_src+0xf8)
         sp = 0xdfb97ce8  fp = 0xdfb97d10
         r4 = 0xdb43ab00  r5 = 0x00000005
         r6 = 0x0000000c  r7 = 0xc0b49d30
         r8 = 0xdafea0c0  r9 = 0xdb43ab00
        r10 = 0xc098d18f
netisr_dispatch_src() at netisr_dispatch_src+0xf8
         pc = 0xc046d66c  lr = 0xc04645c4 (ether_input+0x50)
         sp = 0xdfb97d18  fp = 0xdfb97d48
         r4 = 0xdb43ab00  r5 = 0x00000000
         r6 = 0x00008803  r7 = 0x00000000
         r8 = 0xdafea0c0  r9 = 0xdb43ab00
        r10 = 0xc098d18f
ether_input() at ether_input+0x50
         pc = 0xc04645c4  lr = 0xdffb3f08 ($a.10+0x108)
         sp = 0xdfb97d50  fp = 0xdfb97d78
         r4 = 0xdb132400  r5 = 0xdaff8b00
         r6 = 0xdaff8b10  r7 = 0x00000000
         r8 = 0x00000000 r10 = 0xc098d18f
$a.10() at $a.10+0x108
         pc = 0xdffb3f08  lr = 0xc038cb2c (taskqueue_run_locked+0x1c4)
         sp = 0xdfb97d80  fp = 0xdfb97dd8
         r4 = 0xe0145100  r5 = 0xdaff8b2c
         r6 = 0xe0145150  r7 = 0x00000001
         r8 = 0x00000000  r9 = 0xdfb97d90
        r10 = 0x00000001
taskqueue_run_locked() at taskqueue_run_locked+0x1c4
         pc = 0xc038cb2c  lr = 0xc038e4e4 (taskqueue_thread_loop+0x1b0)
         sp = 0xdfb97de0  fp = 0xdfb97e10
         r4 = 0xe0145100  r5 = 0xe0145140
         r6 = 0xc07af4c4  r7 = 0x00000000
         r8 = 0xc098d18f  r9 = 0x00000100
        r10 = 0xc0b228a0
taskqueue_thread_loop() at taskqueue_thread_loop+0x1b0
         pc = 0xc038e4e4  lr = 0xc02cdf0c (fork_exit+0xc0)
         sp = 0xdfb97e18  fp = 0xdfb97e38
         r4 = 0xdfedd000  r5 = 0xc0b224e0
         r6 = 0xc038e334  r7 = 0xdffc4f54
         r8 = 0xdfb97e40  r9 = 0xc098d191
fork_exit() at fork_exit+0xc0
         pc = 0xc02cdf0c  lr = 0xc0661c5c (swi_exit)
         sp = 0xdfb97e40  fp = 0x00000000
         r4 = 0xc038e334  r5 = 0xdffc4f54
         r6 = 0xc0b45d84  r7 = 0xd73bcba0
         r8 = 0x00000001 r10 = 0xc0b228a0
swi_exit() at swi_exit
         pc = 0xc0661c5c  lr = 0xc0661c5c (swi_exit)
         sp = 0xdfb97e40  fp = 0x00000000
KDB: enter: panic
[ thread pid 0 tid 100230 ]

For reference:

# uname -apKU
FreeBSD OPiP2E-RPi2v1p1 14.0-CURRENT FreeBSD 14.0-CURRENT armv7 1400093 #6 main-n264334-215bab7924f6-dirty: Tue Jul 25 23:11:39 PDT 2023     root@CA72-16Gp-ZFS:/usr/obj/BUILDs/main-CA7-nodbg-clang/usr/main-src/arm.armv7/sys/GENERIC-NODBG-CA7 arm armv7 1400093 1400093

The OrangePi+ 2Ed was the type of system booted and tested.

===
Mark Millard
marklmi at yahoo.com
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.