NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

port-evbarm/54688: aarch64 softint hang, reentrancy problem?



>Number:         54688
>Category:       port-evbarm
>Synopsis:       aarch64 softint hang, reentrancy problem?
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    port-evbarm-maintainer
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Nov 10 18:50:00 +0000 2019
>Originator:     Tobias Nygren
>Release:        9.99.17
>Organization:
>Environment:
>Description:
aarch64 kernel seems prone to deadlocking when softint_dispatch is re-entered while idle loop is processing softints. Running LOCKDEBUG kernel booted with "netbsd -1" and I can get it to hang a couple of times per day.

fp ffffffc060e6fa80 cpu_Debugger() at ffffffc000072f14 netbsd:cpu_Debugger
fp ffffffc060e6faf0 gicv3_fdt_intr() at ffffffc000053054 netbsd:gicv3_fdt_intr+0
x1c
fp ffffffc060e6fb10 pic_dispatch() at ffffffc0000027b0 netbsd:pic_dispatch+0x28
fp ffffffc060e6fb40 gicv3_irq_handler() at ffffffc000006c04 netbsd:gicv3_irq_han
dler+0xe4
fp ffffffc060e6fbb0 interrupt() at ffffffc000074d74 netbsd:interrupt+0x2c
tf ffffffc060e6fbd0 el1_trap() at ffffffc000072df4 netbsd:el1_trap
---- trapframe 0xffffffc060e6fbd0 (304 bytes) ----
registers omitted (hangs here, above is me breaking to ddb)
------------------------------------------------
fp ffffffc060e6fd00 splx() at ffffffc000003fc4 netbsd:splx+0x84
fp ffffffc060e6fd30 softint_dispatch() at ffffffc0004710fc netbsd:softint_dispat
ch+0xec
fp ffffffc060e57720 cpu_switchto_softint() at ffffffc000072d84 netbsd:cpu_switch
to_softint+0x68
tf ffffffc060e57770 el1_trap() at ffffffc000072df4 netbsd:el1_trap
---- trapframe 0xffffffc060e57770 (304 bytes) ----
registers omitted
------------------------------------------------
fp ffffffc060e578a0 vlan_transmit() at ffffffc000558e40 netbsd:vlan_transmit+0x1
80
fp ffffffc060e57930 ether_output() at ffffffc00053ccf0 netbsd:ether_output+0x238

fp ffffffc060e57990 ip_if_output() at ffffffc000223dd8 netbsd:ip_if_output+0x88
fp ffffffc060e579d0 ip_output() at ffffffc000225404 netbsd:ip_output+0xecc
fp ffffffc060e57b70 ip_forward() at ffffffc000221494 netbsd:ip_forward+0x13c
fp ffffffc060e57c00 ipintr() at ffffffc000221df4 netbsd:ipintr+0x39c
fp ffffffc060e57d30 softint_dispatch() at ffffffc000471110 netbsd:softint_dispat
ch+0x100
fp ffffffc060e47cc0 cpu_switchto_softint() at ffffffc000072d84 netbsd:cpu_switch
to_softint+0x68
fp ffffffc060e47df8 cpu_idle() at ffffffc000073cf8 netbsd:cpu_idle+0x58
fp ffffffc060e47e40 idle_loop() at ffffffc000449a00 netbsd:idle_loop+0x188

>How-To-Repeat:
Exercise softint-utilizing code paths moderately on aarch64, for example use vlan(4).
>Fix:
N/A



Home | Main Index | Thread Index | Old Index