On Sat, Apr 11, 2020 at 09:06:57AM +0000, Mikolaj Kucharski wrote:
> >Synopsis: kernel panic with message _dmamap_sync: ran off map!
> >Category: kernel
> >Environment:
> System : OpenBSD 6.7
> Details : OpenBSD 6.7-beta (GENERIC.MP) #546: Mon Apr 6 12:39:22
> MDT 2020
>
> [email protected]:/usr/src/sys/arch/arm64/compile/GENERIC.MP
>
> Architecture: OpenBSD.arm64
> Machine : arm64
> >Description:
> Kernel panic. It happens after usage of network via wireless adapter
> connected via USB, urtwn(4):
>
> urtwn0 at uhub4 port 2 configuration 1 interface 0 "Realtek 802.11n WLAN
> Adapter" rev 2.00/2.00 addr 5
> urtwn0: MAC/BB RTL8188CUS, RF 6052 1T1R, address 80:1f:02:4b:6a:6b
>
> Currently don't have trace output from ddb as it doesn't have function names,
> but addresses.
> Will try to update kernel to latest arm64 snapshot.
>
> >How-To-Repeat:
> Connect urtwn(4) to Pinebook and use network, after a while kernel
> panics.
> For me simplest way is to start `sysupgrade -s -f`
>
> >Fix:
> Unknown.
OpenBSD 6.7-beta (GENERIC.MP) #552: Fri Apr 10 20:48:05 MDT 2020
[email protected]:/usr/src/sys/arch/arm64/compile/GENERIC.MP
panic: _dmamap_sync: ran off map!
Stopped at panic+0x150:
TID PID UID PRFLAGS PFLAGS CPU COMMAND
242142 87433 0 0x100002 0 3 sha256
192114 36379 0 0x14000 0x200 2K sdmmc2
db_enter() at panic+0x14c
panic() at ehci_idone+0x1d4
ehci_idone() at ehci_softintr+0x158
ehci_softintr() at softintr_biglock_wrap+0x1c
softintr_biglock_wrap() at softintr_dispatch+0x9c
softintr_dispatch() at arm_do_pending_intr+0xa8
arm_do_pending_intr() at ampintc_irq_handle+0x178
ddb{0}> trace
db_enter() at panic+0x14c
panic() at ehci_idone+0x1d4
ehci_idone() at ehci_softintr+0x158
ehci_softintr() at softintr_biglock_wrap+0x1c
softintr_biglock_wrap() at softintr_dispatch+0x9c
softintr_dispatch() at arm_do_pending_intr+0xa8
arm_do_pending_intr() at ampintc_irq_handle+0x178
ampintc_irq_handle() at arm_cpu_intr+0x30
arm_cpu_intr() at handle_el1h_irq+06c
handle_el1h_irq() at sched_idle+0x220
sched_idle() at proc_trampoline+0x10
ddb{0}> machine ddb 1
Stopped at ampintc_ipi_ddb+0x1c: db_enter() at ampintc_ipi_ddb+0x18:
ampintc_ipi_ddb() at arm_cpu_intr+0x30
arm_cpu_intr() at handle_el1h_irq+0x6c
handle_el1h_irq() at sched_idle+0x220
sched_idle() at proc_trampoline+0x10
ddb{1}> trace
db_enter() at ampintc_ipi_ddb+0x18
ampintc_ipi_ddb() at arm_cpu_intr+0x30
arm_cpu_intr() at handle_el1h_irq+0x6c
handle_el1h_irq() at sched_idle+0x220
sched_idle() at proc_trampoline+0x10
ddb{1}> machine ddb 2
Stopped at ampintc_ipi_ddb+0x1c: db_enter() at ampintc_ipi_ddb+0x18:
ampintc_ipi_ddb() at arm_cpu_intr+0x30
arm_cpu_intr() at handle_el1h_irq+0x6c
handle_el1h_irq() at sximmc_exec_command+0x240
sximmc_exec_command() at sdmmc_mmc_command+0x38
sdmmc_mmc_command() at sdmmc_mem_read_block_subr+0xa4
sdmmc_mem_read_block_subr() at sdmmc_mem_read_block+0x11c
ddb{2}> trace
db_enter() at ampintc_ipi_ddb+0x18
ampintc_ipi_ddb() at arm_cpu_intr+0x30
arm_cpu_intr() at handle_el1h_irq+0x6c
handle_el1h_irq() at sximmc_exec_command+0x240
sximmc_exec_command() at sdmmc_mmc_command+0x38
sdmmc_mmc_command() at sdmmc_mem_read_block_subr+0xa4
sdmmc_mem_read_block_subr() at sdmmc_mem_read_block+0x11c
sdmmc_mem_read_block() at sdmmc_complete_xs+0x68
sdmmc_complete_xs() at sdmmc_task_thread+0x13c
sdmmc_task_thread() at proc_trampoline+0x10
ddb{2}> machine ddb 3
Stopped at ampintc_ipi_ddb+0x1c: db_enter() at ampintc_ipi_ddb+0x18:
ampintc_ipi_ddb() at arm_cpu_intr+0x30
arm_cpu_intr() at handle_el1h_irq+0x6c
handle_el1h_irq() at tsleep+0x13c
tsleep() at getblk+0xd8
getblk() at bread_cluster+0x48
bread_cluster() at ffs_read+0x190
ddb{3}> trace
db_enter() at ampintc_ipi_ddb+0x18
ampintc_ipi_ddb() at arm_cpu_intr+0x30
arm_cpu_intr() at handle_el1h_irq+0x6c
handle_el1h_irq() at tsleep+0x13c
tsleep() at getblk+0xd8
getblk() at bread_cluster+0x48
bread_cluster() at ffs_read+0x190
ffs_read() at VOP_READ+0x34
VOP_READ() at vn_read+0xac
vn_read() at dofilereadv+0x114
dofilereadv() at sys_read+0x54
sys_read() at svc_handler+0x2c8
svc_handler() at do_el0_sync+0x120
do_el0_sync() at handle_el0_sync+0x74
handle_el0_sync() at 0xb6cbfb550
--- trap ---
Above is transcribed by hand, so there may be typos. Sometimes I cannot
reproduce this panic, but rebooting Pinebook to different version of the
same kernel (kernel relinking) makes the problem trigger easily.
After testing, the easiest way to reproduce it is:
1) configure wireless:
# cat /etc/hostname.urtwn0
debug
nwid access-point-name wpakey secret-key
inet6 autoconf
dhcp
2) configure hotplugd(8) attach script:
# cat /etc/hotplug/attach
#!/bin/sh
logger -t "$0[$$]" -- "$@"
if [ "$1" -eq 3 ]
then
ifconfig "$2" | logger -t "ifconfig[$$]"
if [ -r "/etc/hostname.$2" ]
then
sh /etc/netstart "$2"
fi
fi
exit 0
3) enable hotplugd(8) on bootup
# rcctl enable hotplugd
4) keep rebooting until kernel panics during second
network configuration, via hotplugd(8) attach script
Dmesg from latest snapshot at the time of writing:
OpenBSD 6.7-beta (GENERIC.MP) #552: Fri Apr 10 20:48:05 MDT 2020
[email protected]:/usr/src/sys/arch/arm64/compile/GENERIC.MP
real mem = 2015850496 (1922MB)
avail mem = 1923846144 (1834MB)
mainbus0 at root: Pinebook
cpu0 at mainbus0 mpidr 0: ARM Cortex-A53 r0p4
cpu0: 32KB 64b/line 2-way L1 VIPT I-cache, 32KB 64b/line 4-way L1 D-cache
cpu0: 512KB 64b/line 16-way L2 cache
efi0 at mainbus0: UEFI 2.7
efi0: Das U-Boot rev 0x20190400
apm0 at mainbus0
psci0 at mainbus0: PSCI 0.2
"osc24M_clk" at mainbus0 not configured
"osc32k_clk" at mainbus0 not configured
"internal-osc-clk" at mainbus0 not configured
"sound_spdif" at mainbus0 not configured
"spdif-out" at mainbus0 not configured
agtimer0 at mainbus0: tick rate 24000 KHz
simplebus0 at mainbus0: "soc"
sxisyscon0 at simplebus0
sxisid0 at simplebus0
sxiccmu0 at simplebus0
sxipio0 at simplebus0: 103 pins
ampintc0 at simplebus0 nirq 224, ncpu 4 ipi: 0, 1: "interrupt-controller"
sxirtc0 at simplebus0
sxiccmu1 at simplebus0
sxipio1 at simplebus0: 13 pins
sxirsb0 at simplebus0
axppmic0 at sxirsb0 addr 0x3a3: AXP803
"de2" at simplebus0 not configured
"dma-controller" at simplebus0 not configured
"lcd-controller" at simplebus0 not configured
"lcd-controller" at simplebus0 not configured
sximmc0 at simplebus0
sdmmc0 at sximmc0: 4-bit, sd high-speed, mmc high-speed, dma
sximmc1 at simplebus0
sdmmc1 at sximmc1: 4-bit, sd high-speed, mmc high-speed, dma
sximmc2 at simplebus0
sdmmc2 at sximmc2: 8-bit, sd high-speed, mmc high-speed, dma
"phy" at simplebus0 not configured
ehci0 at simplebus0
usb0 at ehci0: USB revision 2.0
uhub0 at usb0 configuration 1 interface 0 "Generic EHCI root hub" rev 2.00/1.00
addr 1
ohci0 at simplebus0: version 1.0
ehci1 at simplebus0
usb1 at ehci1: USB revision 2.0
uhub1 at usb1 configuration 1 interface 0 "Generic EHCI root hub" rev 2.00/1.00
addr 1
ohci1 at simplebus0: version 1.0
com0 at simplebus0sxiccmu_ccu_reset: 0x0000002e
: ns16550, no working fifo
sxipwm0 at simplebus0
"hdmi-phy" at simplebus0 not configured
"interrupt-controller" at simplebus0 not configured
sxitwi0 at simplebus0
iic0 at sxitwi0
"analogix,anx6345" at iic0 addr 0x38 not configured
sxidog0 at simplebus0
gpio0 at sxipio0: 32 pins
gpio1 at sxipio0: 32 pins
gpio2 at sxipio0: 32 pins
gpio3 at sxipio0: 32 pins
gpio4 at sxipio0: 32 pins
gpio5 at sxipio0: 32 pins
gpio6 at sxipio0: 32 pins
gpio7 at sxipio0: 32 pins
gpio8 at sxipio1: 32 pins
usb2 at ohci0: USB revision 1.0
uhub2 at usb2 configuration 1 interface 0 "Generic OHCI root hub" rev 1.00/1.00
addr 1
usb3 at ohci1: USB revision 1.0
uhub3 at usb3 configuration 1 interface 0 "Generic OHCI root hub" rev 1.00/1.00
addr 1
"regulator" at mainbus0 not configured
pwmbl0 at mainbus0
"gpio_keys" at mainbus0 not configured
"vcc3v3" at mainbus0 not configured
"wifi_pwrseq" at mainbus0 not configured
"binman" at mainbus0 not configured
simplefb0 at mainbus0: 1920x1080, 32bpp
wsdisplay0 at simplefb0 mux 1: console (std, vt100 emulation)
wsdisplay0: screen 1-5 added (std, vt100 emulation)
cpu1 at mainbus0 mpidr 1: ARM Cortex-A53 r0p4
cpu1: 32KB 64b/line 2-way L1 VIPT I-cache, 32KB 64b/line 4-way L1 D-cache
cpu1: 512KB 64b/line 16-way L2 cache
cpu2 at mainbus0 mpidr 2: ARM Cortex-A53 r0p4
cpu2: 32KB 64b/line 2-way L1 VIPT I-cache, 32KB 64b/line 4-way L1 D-cache
cpu2: 512KB 64b/line 16-way L2 cache
cpu3 at mainbus0 mpidr 3: ARM Cortex-A53 r0p4
cpu3: 32KB 64b/line 2-way L1 VIPT I-cache, 32KB 64b/line 4-way L1 D-cache
cpu3: 512KB 64b/line 16-way L2 cache
manufacturer 0x024c, product 0xb703 at sdmmc1 function 1 not configured
scsibus0 at sdmmc0: 2 targets, initiator 0
sd0 at scsibus0 targ 1 lun 0: <SD/MMC, SR256, 0080> removable
sd0: 244016MB, 512 bytes/sector, 499744768 sectors
scsibus1 at sdmmc2: 2 targets, initiator 0
sd1 at scsibus1 targ 1 lun 0: <Samsung, AJTD4R, 0000> removable
sd1: 14910MB, 512 bytes/sector, 30535680 sectors
uhub4 at uhub1 port 1 configuration 1 interface 0 "Genesys Logic USB2.0 Hub"
rev 2.00/88.32 addr 2
uhidev0 at uhub4 port 1 configuration 1 interface 0 "HAILUCK CO.,LTD USB
KEYBOARD" rev 1.10/1.00 addr 3
uhidev0: iclass 3/1
ukbd0 at uhidev0: 8 variable keys, 6 key codes
wskbd0 at ukbd0: console keyboard, using wsdisplay0
uhidev1 at uhub4 port 1 configuration 1 interface 1 "HAILUCK CO.,LTD USB
KEYBOARD" rev 1.10/1.00 addr 3
uhidev1: iclass 3/0, 9 report ids
ums0 at uhidev1 reportid 1: 5 buttons, Z and W dir
wsmouse0 at ums0 mux 0
uhid0 at uhidev1 reportid 2: input=1, output=0, feature=0
uhid1 at uhidev1 reportid 3: input=3, output=0, feature=0
uhid2 at uhidev1 reportid 5: input=0, output=0, feature=5
uhid3 at uhidev1 reportid 6: input=0, output=0, feature=255
uhid4 at uhidev1 reportid 9: input=1, output=0, feature=0
uvideo0 at uhub4 port 3 configuration 1 interface 0 "Generic USB2.0 PC CAMERA"
rev 2.00/1.00 addr 4
video0 at uvideo0
vscsi0 at root
scsibus2 at vscsi0: 256 targets
softraid0 at root
scsibus3 at softraid0: 256 targets
bootfile: sd0a:/bsd
boot device: sd0
root on sd1a (1440dafaca0ef42a.a) swap on sd1b dump on sd1b
urtwn0 at uhub4 port 2 configuration 1 interface 0 "Realtek 802.11n WLAN
Adapter" rev 2.00/2.00 addr 5
urtwn0: MAC/BB RTL8188CUS, RF 6052 1T1R, address 80:1f:02:4b:6a:6b
--
Regards,
Mikolaj