NetBSD Problem Report #50491

From www@NetBSD.org  Tue Dec  1 06:45:48 2015
Return-Path: <www@NetBSD.org>
Received: from mail.netbsd.org (mail.netbsd.org [149.20.53.66])
	(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
	(Client CN "mail.netbsd.org", Issuer "Postmaster NetBSD.org" (verified OK))
	by mollari.NetBSD.org (Postfix) with ESMTPS id 2A35EA65CB
	for <gnats-bugs@gnats.NetBSD.org>; Tue,  1 Dec 2015 06:45:48 +0000 (UTC)
Message-Id: <20151201064545.C462BA65CE@mollari.NetBSD.org>
Date: Tue,  1 Dec 2015 06:45:45 +0000 (UTC)
From: mfpnb@plass-family.net
Reply-To: mfpnb@plass-family.net
To: gnats-bugs@NetBSD.org
Subject: unkillable wait in usbd_transfer while using usmsc0 on raspberry pi 2
X-Send-Pr-Version: www-1.0

>Number:         50491
>Category:       kern
>Synopsis:       unkillable wait in usbd_transfer while using usmsc0 on raspberry pi 2
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    skrll
>State:          closed
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue Dec 01 06:50:00 +0000 2015
>Closed-Date:    Wed Nov 02 08:23:37 +0000 2016
>Last-Modified:  Wed Nov 02 08:23:37 +0000 2016
>Originator:     Michael Plass
>Release:        NetBSD-7.0
>Organization:
>Environment:
NetBSD mipi 7.0 NetBSD 7.0 (RPI2) #0: Thu Oct 29 03:02:03 PDT 2015  michael@home.plass-family.net:/home/michael/NetBSD-7.0/build/usr/src/sys/arch/evbarm/compile/obj/RPI2 evbarm

>Description:
When using the built-in usmsc0 network interface on a raspberry pi 2, a process will occasionally get stuck waiting on usbxfer. When in this state, the process does not respond to signals. Processes that do not use the network can continue; for instance it is usually possible to login on the serial console.

Sometimes, but not always, there are also kernel messages logged - see the bottom of the two dmesg outputs below for a couple of examples.

This example happened while transferring data with ssh:

mipi# Stopped in pid 0.2 (system) at  netbsd:cpu_Debugger+0x4:        bx      r14
db{0}> ps
PID    LID S CPU     FLAGS       STRUCT LWP *               NAME WAIT
936      1 3   1        80           b9ee16e0                 dd pipe_rd
3388     1 3   3         0           b9ee00e0                ssh usbxfer
2872     1 3   2        80           b9ee19a0                 sh wait
2635     1 3   2        80           bac12e60                top ttyout
1598     1 3   3        80           bacc1c00                 sh wait
114      1 3   1        80           bac13120               sshd select
1925     1 3   1        80           bac133e0               sshd select
2634     1 3   1        80           bac12360                 sh wait
2449     1 3   2         0           bac12ba0               sshd tstile
2127     1 3   1        80           bac12620               sshd select
2303     1 3   1        80           bacfab60                 sh ttyraw
2436     1 3   1        80           bacfa320              login wait
2423     1 3   1        80           b9ee0ea0               cron nanoslp
2133     1 3   1        80           b9ee0660              inetd kqueue
2074     1 3   1        80           ba5ae0c0               qmgr kqueue
2009     1 3   3        80           ba5ae640             pickup kqueue
2036     1 3   3        80           b9ee0920             master kqueue
1709     1 3   1        80           ba5ae900               sshd select
1203     1 3   2        80           ba5aebc0               ntpd pause
1411     1 3   1        80           ba5af6c0            devpubd devmon
925      1 3   1        80           ba5afc40            syslogd kqueue
db{0}> bt/tl 0t3388 
trace: pid 3388 lid 1 at 0xba7f39cc
0xba7f39cc: netbsd:mi_switch+0x10
0xba7f39fc: netbsd:sleepq_block+0xb4
0xba7f3a2c: netbsd:cv_wait+0x104
0xba7f3a5c: netbsd:usbd_transfer+0x23c
0xba7f3aac: netbsd:usbd_do_request_flags_pipe+0xd8
0xba7f3ad4: netbsd:usbd_do_request+0x38
0xba7f3b04: netbsd:smsc_read_reg+0x60
0xba7f3b2c: netbsd:smsc_wait_for_bits+0x4c
0xba7f3b54: netbsd:smsc_chip_init+0x30
0xba7f3b74: netbsd:smsc_stop+0x274
0xba7f3bac: netbsd:smsc_encap+0xd0
0xba7f3bcc: netbsd:smsc_start+0x6c
0xba7f3bf4: netbsd:ifq_enqueue+0xdc
0xba7f3c3c: netbsd:ether_output+0x2d4
0xba7f3cdc: netbsd:ip_output+0xb60
0xba7f3dbc: netbsd:tcp_output+0x1360
0xba7f3de4: netbsd:tcp_rcvd_wrapper+0x94
0xba7f3e6c: netbsd:soreceive+0x5ac
0xba7f3e84: netbsd:soo_read+0x30
0xba7f3edc: netbsd:dofileread+0x94
0xba7f3f0c: netbsd:sys_read+0x70
0xba7f3f7c: netbsd:syscall+0x88
0xba7f3fac: netbsd:swi_handler+0x98
db{0}> dmesg
Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
   2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015
   The NetBSD Foundation, Inc.  All rights reserved.
Copyright (c) 1982, 1986, 1989, 1991, 1993
   The Regents of the University of California.  All rights reserved.

NetBSD 7.0 (RPI2) #0: Thu Oct 29 03:02:03 PDT 2015
       michael@home.plass-family.net:/home/michael/NetBSD-7.0/build/usr/src/sys
/arch/evbarm/compile/obj/RPI2
total memory = 944 MB
avail memory = 928 MB
sysctl_createv: sysctl_create(machine_arch) returned 17
kern.module.path=/stand/evbarm/7.0/modules
timecounter: Timecounters tick every 10.000 msec
mainbus0 (root)
cpu0 at mainbus0 core 0: 600 MHz Cortex-A7 r0p5 (Cortex V7A core)
cpu0: DC enabled IC enabled WB disabled EABT branch prediction enabled
cpu0: isar: [0]=0x2101110 [1]=0x13112111 [2]=0x21232041 [3]=0x11112131, [4]=0x10
011142, [5]=0
cpu0: mmfr: [0]=0x10101105 [1]=0x40000000 [2]=0x1240000 [3]=0x2102211
cpu0: pfr: [0]=0x1131 [1]=0x11011
cpu0: 32KB/32B 2-way L1 VIPT Instruction cache
cpu0: 32KB/64B 4-way write-back-locking-C L1 PIPT Data cache
cpu0: 512KB/64B 8-way write-through L2 PIPT Unified cache
vfp0 at cpu0: NEON MPE (VFP 3.0+), rounding, NaN propagation, denormals
vfp0: mvfr: [0]=0x10110222 [1]=0x11111111
cpu1 at mainbus0 core 1
cpu2 at mainbus0 core 2
cpu3 at mainbus0 core 3
obio0 at mainbus0
bcmicu0 at obio0: Multiprocessor
armgtmr0 at obio0: ARMv7 Generic 64-bit Timer (19200 kHz)
armgtmr0: interrupting on irq 3
timecounter: Timecounter "armgtmr0" frequency 19200000 Hz quality 500
bcmmbox0 at obio0: VC mailbox
vcmbox0 at bcmmbox0
vchiq0 at obio0 intr 194: BCM2835 VCHIQ
bcmpm0 at obio0: Power management, Reset and Watchdog controller
bcmdmac0 at obio0: DMA0 DMA2 DMA4 DMA5 DMA8 DMA9 DMA10
bcmrng0 at obio0: RNG
plcom0 at obio0 intr 185
plcom0: txfifo disabled
plcom0: console
genfb0 at obio0
genfb0: framebuffer at 0x3d876000, size 1280x720, depth 32, stride 5120
wsdisplay0 at genfb0 kbdmux 1
wsmux1: connecting to wsdisplay0
wsdisplay0: screen 0-3 added (default, vt100 emulation)
sdhc0 at obio0 intr 190: SDHC controller
sdhc0: interrupting on intr 190
dwctwo0 at obio0 intr 137: USB controller
bcmspi0 at obio0 intr 182: SPI
spi0 at bcmspi0: SPI bus
bsciic0 at obio0 intr 181: BSC0
iic0 at bsciic0: I2C bus
bsciic1 at obio0 intr 181: BSC1
iic1 at bsciic1: I2C bus
bcmgpio0 at obio0: GPIO [0...31]
gpio0 at bcmgpio0: 32 pins
bcmgpio1 at obio0: GPIO [32...53]
gpio1 at bcmgpio1: 22 pins
usb0 at dwctwo0: USB revision 2.0
timecounter: Timecounter "clockinterrupt" frequency 100 Hz quality 0
cpu3: 600 MHz Cortex-A7 r0p5 (Cortex V7A core)
cpu3: DC enabled IC enabled WB disabled EABT branch prediction enabled
cpu3: isar: [0]=0x2101110 [1]=0x13112111 [2]=0x21232041 [3]=0x11112131, [4]=0x10
011142, [5]=0
cpu3: mmfr: [0]=0x10101105 [1]=0x40000000 [2]=0x1240000 [3]=0x2102211
cpu3: pfr: [0]=0x1131 [1]=0x11011
cpu3: 32KB/32B 2-way L1 VIPT Instruction cache
cpu3: 32KB/64B 4-way write-back-locking-C L1 PIPT Data cache
cpu3: 512KB/64B 8-way write-through L2 PIPT Unified cache
vfp3 at cpu3: NEON MPE (VFP 3.0+), rounding, NaN propagation, denormals
vfp3: mvfr: [0]=0x10110222 [1]=0x11111111
cpu1: 600 MHz Cortex-A7 r0p5 (Cortex V7A core)
cpu1: DC enabled IC enabled WB disabled EABT branch prediction enabled
cpu1: isar: [0]=0x2101110 [1]=0x13112111 [2]=0x21232041 [3]=0x11112131, [4]=0x10
011142, [5]=0
cpu1: mmfr: [0]=0x10101105 [1]=0x40000000 [2]=0x1240000 [3]=0x2102211
cpu1: pfr: [0]=0x1131 [1]=0x11011
cpu1: 32KB/32B 2-way L1 VIPT Instruction cache
cpu1: 32KB/64B 4-way write-back-locking-C L1 PIPT Data cache
cpu1: 512KB/64B 8-way write-through L2 PIPT Unified cache
vfp1 at cpu1: NEON MPE (VFP 3.0+), rounding, NaN propagation, denormals
vfp1: mvfr: [0]=0x10110222 [1]=0x11111111
cpu2: 600 MHz Cortex-A7 r0p5 (Cortex V7A core)
cpu2: DC enabled IC enabled WB disabled EABT branch prediction enabled
cpu2: isar: [0]=0x2101110 [1]=0x13112111 [2]=0x21232041 [3]=0x11112131, [4]=0x10
011142, [5]=0
cpu2: mmfr: [0]=0x10101105 [1]=0x40000000 [2]=0x1240000 [3]=0x2102211
cpu2: pfr: [0]=0x1131 [1]=0x11011
cpu2: 32KB/32B 2-way L1 VIPT Instruction cache
cpu2: 32KB/64B 4-way write-back-locking-C L1 PIPT Data cache
cpu2: 512KB/64B 8-way write-through L2 PIPT Unified cache
vfp2 at cpu2: NEON MPE (VFP 3.0+), rounding, NaN propagation, denormals
vfp2: mvfr: [0]=0x10110222 [1]=0x11111111
sdhc0: SD Host Specification 3.0, rev.153
sdhc0: using DMA transfer
sdmmc0 at sdhc0 slot 0
uhub0 at usb0: vendor 0x0000 DWC2 root hub, class 9/0, rev 2.00/1.00, addr 1
uhub0: 1 port with 1 removable, self powered
ld0 at sdmmc0: <0x03:0x5344:SU08G:0x80:0x611ed719:0x0e5>
ld0: 7580 MB, 3850 cyl, 64 head, 63 sec, 512 bytes/sect x 15523840 sectors
ld0: 4-bit width, bus clock 50.000 MHz
uhub1 at uhub0 port 1: vendor 0x0424 product 0x9514, class 9/0, rev 2.00/2.00, a
ddr 2
uhub1: multiple transaction translators
uhub1: 5 ports with 4 removable, self powered
usmsc0 at uhub1 port 1
usmsc0: vendor 0x0424 product 0xec00, rev 2.00/2.00, addr 3
usmsc0:  Ethernet address b8:27:eb:19:a8:ec
ukphy0 at usmsc0 phy 1: OUI 0x00800f, model 0x000c, rev. 3
ukphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
umidi_search_quirk: v=1204, p=26672, i=0
umass0 at uhub1 port 3 configuration 1 interface 0
umass0: vendor 0x04b4 Cypress AT2LP RC42, rev 2.00/4.20, addr 4
umass0: using SCSI over Bulk-Only
scsibus0 at umass0: 2 targets, 1 lun per target
sd0 at scsibus0 target 0 lun 0: <SAMSUNG, SP1604N, 0000> disk fixed
umass0: dCSWDataResidue=20 req=40 act=40
sd0: 149 GB, 16383 cyl, 16 head, 63 sec, 512 bytes/sect x 312581808 sectors
boot device: ld0
root on ld0a dumps on ld0b
root file system type: ffs
vchiq: local ver 6 (min 3), remote ver 6.
vcaudio0 at vchiq0: auds
WARNING: no TOD clock present
WARNING: using filesystem time
WARNING: CHECK AND RESET THE DATE!
audio0 at vcaudio0: half duplex, playback, capture, independent
umass0: dCSWDataResidue=20 req=40 act=40
wsdisplay0: screen 4 added (default, vt100 emulation)
usb_insert_transfer: xfer=0xbacb9440 not busy 0x0000009e



Another example, while stopping mdnsd:
Stopped in pid 0.2 (system) at  netbsd:cpu_Debugger+0x4:        bx      r14
db{0}> ps
PID    LID S CPU     FLAGS       STRUCT LWP *               NAME WAIT
2508     1 3   1        80           ba55f140               tset nanoslp
2613     1 3   1        80           baba68e0                 sh pipe_rd
2873     1 3   0        80           baba6360              sleep nanoslp
264      1 3   0        80           ba55f400                 sh wait
1966     1 3   0   1000000           ba55f6c0               ntpd tstile
1626     1 3   1        80           b9c963a0             pickup kqueue
70       1 3   0        80           baba6620                 sh wait
73       1 3   1        80           baba6e60                 su wait
2442     1 3   1        80           b9c96ea0                 sh wait
2422     1 3   1         0           b88a7700               sshd tstile
2181     1 3   1        80           bacfae20              login wait
2255     1 3   1        80           b88a7180               cron nanoslp
2308     1 3   1        80           b88a7c80               sshd select
2339     1 3   1        80           b9c960e0              inetd kqueue
2015     1 3   2         0           b9c96920              mdnsd usbxfer
2061     1 3   1        80           b9c96660               qmgr kqueue
1908     1 3   1        80           b88a79c0             master kqueue
1291     1 3   1        80           b9c96be0               sshd select
1464     1 3   1        80           baba60a0            devpubd devmon
859      1 3   1        80           ba55ee80            syslogd kqueue
541      1 3   3        80           ba55f980             dhcpcd select
1        1 3   1        80           bacc1100               init wait
0       64 3   1       200           bacc0e40            physiod physiod
0       63 3   1       200           baba7c20           aiodoned aiodoned
0       62 3   1       200           bacfa5e0            ioflush syncer
0       61 3   1       200           bacfab60           pgdaemon pgdaemon
0       60 3   1       280           bacc0080          VCHIQka-0 lnxcmplt
0       59 3   1       280           bacc0340            vcaudio data
0       58 3   1       280           bacc0600           VCHIQs-0 semacv
0       57 3   1       280           bacc08c0           VCHIQr-0 semacv
0       56 3   1       280           bacc0b80            VCHIQ-0 semacv
0       53 3   1       200           bacfa8a0               usb0 usbevt
0       52 3   1       200           bacfa320              unpgc unpgc
0       50 3   1       200           bacc1940        vmem_rehash vmem_rehash
0       49 3   0       200           bacc13c0             sdmmc0 mmctaskq
0       48 3   1       200           bacc1680            vcmbox0 vcmbox0
0       39 3   1       200           bacfb0e0         usbtask-dr usbxfer
0       38 3   1       200           bacfb3a0         usbtask-hc usbtsk
0       37 3   1       200           bacfb660               dwc2 dwc2
0       36 3   3       200           bacfb920               iic1 iicintr
0       35 3   0       200           bacfbbe0               iic0 iicintr
0       34 3   1       200           bada4040             sysmon smtaskq
0       33 3   3       200           bada4300            xcall/3 xcall
0       32 1   3       200           bada45c0          softser/3
0       31 1   3       200           bada4880          softclk/3
0       30 1   3       200           bada4b40          softbio/3
0       29 1   3       200           bada4e00          softnet/3
0    >  28 7   3       201           bada50c0             idle/3
0       27 3   2       200           bada5380            xcall/2 xcall
0       26 1   2       200           bada5640          softser/2
0       25 1   2       200           bada5900          softclk/2
0       24 1   2       200           bada5bc0          softbio/2
0       23 1   2       200           badd4020          softnet/2
0    >  22 7   2       201           badd42e0             idle/2
0       21 3   1       200           badd45a0            xcall/1 xcall
0       20 1   1       200           badd4860          softser/1
0       19 3   1       200           badd4b20          softclk/1 tstile
0       18 1   1       200           badd4de0          softbio/1
0       17 1   1       200           badd50a0          softnet/1
0    >  16 7   1       201           badd5360             idle/1
0       15 3   1       200           badd5620         pmfsuspend pmfsuspend
0       14 3   1       200           badd58e0           pmfevent pmfevent
0       13 3   1       200           badd5ba0         sopendfree sopendfr
0       12 3   1       200           baf04000           nfssilly nfssilly
0       11 3   1       200           baf042c0            cachegc cachegc
0       10 3   2       200           baf04580              vrele vrele
0        9 3   0       200           baf04840             vdrain vdrain
0        8 3   1       200           baf04b00          modunload mod_unld
0        7 3   0       200           baf04dc0            xcall/0 xcall
0        6 1   0       200           baf05080          softser/0
0        5 3   0       200           baf05340          softclk/0 tstile
0        4 1   0       200           baf05600          softbio/0
0        3 3   0       200           baf058c0          softnet/0 tstile
0    >   2 7   0       201           baf05b80             idle/0
0        1 3   1       200           805718c0            swapper uvm
db{0}> bt/t 0t2015
trace: pid 2015 lid 1 at 0xb98a7b54
0xb98a7b54: netbsd:mi_switch+0x10
0xb98a7b84: netbsd:sleepq_block+0xb4
0xb98a7bb4: netbsd:cv_wait+0x104
0xb98a7be4: netbsd:usbd_transfer+0x23c
0xb98a7c34: netbsd:usbd_do_request_flags_pipe+0xd8
0xb98a7c5c: netbsd:usbd_do_request+0x38
0xb98a7c8c: netbsd:smsc_write_reg+0x60
0xb98a7cb4: netbsd:smsc_setmulti+0x110
0xb98a7ce4: netbsd:smsc_ioctl+0x124
0xb98a7d8c: netbsd:if_mcast_op+0x50
0xb98a7db4: netbsd:in_delmulti+0x78
0xb98a7dd4: netbsd:ip_freemoptions+0x34
0xb98a7df4: netbsd:in_pcbdetach+0xac
0xb98a7e14: netbsd:udp_detach_wrapper+0x40
0xb98a7e3c: netbsd:soclose+0x7c
0xb98a7e54: netbsd:soo_close+0x20
0xb98a7e94: netbsd:closef+0x6c
0xb98a7ef4: netbsd:fd_close+0x180
0xb98a7f0c: netbsd:sys_close+0x2c
0xb98a7f7c: netbsd:syscall+0x88
0xb98a7fac: netbsd:swi_handler+0x98
db{0}> dmesg
Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
    2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015
    The NetBSD Foundation, Inc.  All rights reserved.
Copyright (c) 1982, 1986, 1989, 1991, 1993
    The Regents of the University of California.  All rights reserved.

NetBSD 7.0 (RPI2) #0: Thu Oct 29 03:02:03 PDT 2015
        michael@home.plass-family.net:/home/michael/NetBSD-7.0/build/usr/src/sys
/arch/evbarm/compile/obj/RPI2
total memory = 944 MB
avail memory = 928 MB
sysctl_createv: sysctl_create(machine_arch) returned 17
kern.module.path=/stand/evbarm/7.0/modules
timecounter: Timecounters tick every 10.000 msec
mainbus0 (root)
cpu0 at mainbus0 core 0: 600 MHz Cortex-A7 r0p5 (Cortex V7A core)
cpu0: DC enabled IC enabled WB disabled EABT branch prediction enabled
cpu0: isar: [0]=0x2101110 [1]=0x13112111 [2]=0x21232041 [3]=0x11112131, [4]=0x10
011142, [5]=0
cpu0: mmfr: [0]=0x10101105 [1]=0x40000000 [2]=0x1240000 [3]=0x2102211
cpu0: pfr: [0]=0x1131 [1]=0x11011
cpu0: 32KB/32B 2-way L1 VIPT Instruction cache
cpu0: 32KB/64B 4-way write-back-locking-C L1 PIPT Data cache
cpu0: 512KB/64B 8-way write-through L2 PIPT Unified cache
vfp0 at cpu0: NEON MPE (VFP 3.0+), rounding, NaN propagation, denormals
vfp0: mvfr: [0]=0x10110222 [1]=0x11111111
cpu1 at mainbus0 core 1
cpu2 at mainbus0 core 2
cpu3 at mainbus0 core 3
obio0 at mainbus0
bcmicu0 at obio0: Multiprocessor
armgtmr0 at obio0: ARMv7 Generic 64-bit Timer (19200 kHz)
armgtmr0: interrupting on irq 3
timecounter: Timecounter "armgtmr0" frequency 19200000 Hz quality 500
bcmmbox0 at obio0: VC mailbox
vcmbox0 at bcmmbox0
vchiq0 at obio0 intr 194: BCM2835 VCHIQ
bcmpm0 at obio0: Power management, Reset and Watchdog controller
bcmdmac0 at obio0: DMA0 DMA2 DMA4 DMA5 DMA8 DMA9 DMA10
bcmrng0 at obio0: RNG
plcom0 at obio0 intr 185
plcom0: txfifo disabled
plcom0: console
genfb0 at obio0
genfb0: framebuffer at 0x3d876000, size 1280x720, depth 32, stride 5120
wsdisplay0 at genfb0 kbdmux 1
wsmux1: connecting to wsdisplay0
wsdisplay0: screen 0-3 added (default, vt100 emulation)
sdhc0 at obio0 intr 190: SDHC controller
sdhc0: interrupting on intr 190
dwctwo0 at obio0 intr 137: USB controller
bcmspi0 at obio0 intr 182: SPI
spi0 at bcmspi0: SPI bus
bsciic0 at obio0 intr 181: BSC0
iic0 at bsciic0: I2C bus
bsciic1 at obio0 intr 181: BSC1
iic1 at bsciic1: I2C bus
bcmgpio0 at obio0: GPIO [0...31]
gpio0 at bcmgpio0: 32 pins
bcmgpio1 at obio0: GPIO [32...53]
gpio1 at bcmgpio1: 22 pins
usb0 at dwctwo0: USB revision 2.0
timecounter: Timecounter "clockinterrupt" frequency 100 Hz quality 0
cpu1: 600 MHz Cortex-A7 r0p5 (Cortex V7A core)
cpu1: DC enabled IC enabled WB disabled EABT branch prediction enabled
cpu1: isar: [0]=0x2101110 [1]=0x13112111 [2]=0x21232041 [3]=0x11112131, [4]=0x10
011142, [5]=0
cpu1: mmfr: [0]=0x10101105 [1]=0x40000000 [2]=0x1240000 [3]=0x2102211
cpu1: pfr: [0]=0x1131 [1]=0x11011
cpu1: 32KB/32B 2-way L1 VIPT Instruction cache
cpu1: 32KB/64B 4-way write-back-locking-C L1 PIPT Data cache
cpu1: 512KB/64B 8-way write-through L2 PIPT Unified cache
vfp1 at cpu1: NEON MPE (VFP 3.0+), rounding, NaN propagation, denormals
vfp1: mvfr: [0]=0x10110222 [1]=0x11111111
cpu3: 600 MHz Cortex-A7 r0p5 (Cortex V7A core)
cpu3: DC enabled IC enabled WB disabled EABT branch prediction enabled
cpu3: isar: [0]=0x2101110 [1]=0x13112111 [2]=0x21232041 [3]=0x11112131, [4]=0x10
011142, [5]=0
cpu3: mmfr: [0]=0x10101105 [1]=0x40000000 [2]=0x1240000 [3]=0x2102211
cpu3: pfr: [0]=0x1131 [1]=0x11011
cpu3: 32KB/32B 2-way L1 VIPT Instruction cache
cpu3: 32KB/64B 4-way write-back-locking-C L1 PIPT Data cache
cpu3: 512KB/64B 8-way write-through L2 PIPT Unified cache
vfp3 at cpu3: NEON MPE (VFP 3.0+), rounding, NaN propagation, denormals
vfp3: mvfr: [0]=0x10110222 [1]=0x11111111
cpu2: 600 MHz Cortex-A7 r0p5 (Cortex V7A core)
cpu2: DC enabled IC enabled WB disabled EABT branch prediction enabled
cpu2: isar: [0]=0x2101110 [1]=0x13112111 [2]=0x21232041 [3]=0x11112131, [4]=0x10
011142, [5]=0
cpu2: mmfr: [0]=0x10101105 [1]=0x40000000 [2]=0x1240000 [3]=0x2102211
cpu2: pfr: [0]=0x1131 [1]=0x11011
cpu2: 32KB/32B 2-way L1 VIPT Instruction cache
cpu2: 32KB/64B 4-way write-back-locking-C L1 PIPT Data cache
cpu2: 512KB/64B 8-way write-through L2 PIPT Unified cache
vfp2 at cpu2: NEON MPE (VFP 3.0+), rounding, NaN propagation, denormals
vfp2: mvfr: [0]=0x10110222 [1]=0x11111111
sdhc0: SD Host Specification 3.0, rev.153
sdhc0: using DMA transfer
sdmmc0 at sdhc0 slot 0
uhub0 at usb0: vendor 0x0000 DWC2 root hub, class 9/0, rev 2.00/1.00, addr 1
uhub0: 1 port with 1 removable, self powered
ld0 at sdmmc0: <0x03:0x5344:SU08G:0x80:0x611ed719:0x0e5>
ld0: 7580 MB, 3850 cyl, 64 head, 63 sec, 512 bytes/sect x 15523840 sectors
ld0: 4-bit width, bus clock 50.000 MHz
uhub1 at uhub0 port 1: vendor 0x0424 product 0x9514, class 9/0, rev 2.00/2.00, a
ddr 2
uhub1: multiple transaction translators
uhub1: 5 ports with 4 removable, self powered
usmsc0 at uhub1 port 1
usmsc0: vendor 0x0424 product 0xec00, rev 2.00/2.00, addr 3
usmsc0:  Ethernet address b8:27:eb:19:a8:ec
ukphy0 at usmsc0 phy 1: OUI 0x00800f, model 0x000c, rev. 3
ukphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
boot device: ld0
root on ld0a dumps on ld0b
root file system type: ffs
vchiq: local ver 6 (min 3), remote ver 6.
vcaudio0 at vchiq0: auds
WARNING: no TOD clock present
WARNING: using filesystem time
WARNING: CHECK AND RESET THE DATE!
audio0 at vcaudio0: half duplex, playback, capture, independent
wsdisplay0: screen 4 added (default, vt100 emulation)
usbd_do_request: not in process context
usmsc0: warning: Failed to write register 0x10c
usbd_do_request: not in process context
usmsc0: warning: Failed to write register 0x110
usbd_do_request: not in process context
usmsc0: warning: Failed to write register 0x100
db{0}> sync
syncing disks... 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 giving up

dump to dev 92,1 not possible
rebooting...

>How-To-Repeat:
It can happen anytime the usmsc0 network interface is in use, but one of the more likely ways to provoke it is to close a multicast socket.
For instance,
# service mdnsd restart

It won't happen all the time, so many repetitions may be required.

The problem becomes less likely to happen when all but one CPU is taken offline; I have had an uptime of several days of normal use this way, but eventually the problem did occur.

To rule out any obvious hardware problem, I ran continuous network transfers while running raspbian for several days, without any problems.


>Fix:

>Release-Note:

>Audit-Trail:

Responsible-Changed-From-To: kern-bug-people->skrll
Responsible-Changed-By: skrll@NetBSD.org
Responsible-Changed-When: Tue, 01 Dec 2015 08:44:44 +0000
Responsible-Changed-Why:
I should take this one


From: Nick Hudson <skrll@netbsd.org>
To: gnats-bugs@NetBSD.org, kern-bug-people@netbsd.org,
 gnats-admin@netbsd.org, netbsd-bugs@netbsd.org
Cc: 
Subject: Re: kern/50491: unkillable wait in usbd_transfer while using usmsc0
 on raspberry pi 2
Date: Tue, 1 Dec 2015 14:33:58 +0000

 This is a multi-part message in MIME format.
 --------------060900050601040906010405
 Content-Type: text/plain; charset=windows-1252; format=flowed
 Content-Transfer-Encoding: 7bit

 On 12/01/15 06:50, mfpnb@plass-family.net wrote:
 >> Number:         50491
 >> Category:       kern
 >> Synopsis:       unkillable wait in usbd_transfer while using usmsc0 on raspberry pi 2


 > usbd_do_request: not in process context
 > usmsc0: warning: Failed to write register 0x10c
 > usbd_do_request: not in process context
 > usmsc0: warning: Failed to write register 0x110
 > usbd_do_request: not in process context
 > usmsc0: warning: Failed to write register 0x100


 Please run with this patch to help determine why this is happening.

 It will drop to debugger where you can get a backtrace.

 Thanks,
 Nick

 --------------060900050601040906010405
 Content-Type: text/x-patch;
  name="pr50491.diff"
 Content-Transfer-Encoding: 7bit
 Content-Disposition: attachment;
  filename="pr50491.diff"

 Index: sys/dev/usb/usbdi.c
 ===================================================================
 RCS file: /cvsroot/src/sys/dev/usb/usbdi.c,v
 retrieving revision 1.161.2.1
 diff -u -p -r1.161.2.1 usbdi.c
 --- sys/dev/usb/usbdi.c	11 Feb 2015 09:32:19 -0000	1.161.2.1
 +++ sys/dev/usb/usbdi.c	1 Dec 2015 14:33:00 -0000
 @@ -992,6 +992,8 @@ usbd_do_request_flags_pipe(usbd_device_h
  	usbd_xfer_handle xfer;
  	usbd_status err;

 +	ASSERT_SLEEPABLE();
 +
  #ifdef DIAGNOSTIC
  	if (cpu_intr_p() || cpu_softintr_p()) {
  		printf("usbd_do_request: not in process context\n");

 --------------060900050601040906010405--

From: Michael Plass <mfpnb@plass-family.net>
To: gnats-bugs@NetBSD.org
Cc: Michael Plass <mfpnb@plass-family.net>
Subject: Re: kern/50491: unkillable wait in usbd_transfer while using usmsc0 on raspberry pi 2
Date: Tue, 1 Dec 2015 20:55:32 -0800

 On Dec 1, 2015, at 12:50 PM, Nick Hudson wrote:

 > The following reply was made to PR kern/50491; it has been noted by =
 GNATS.
 >=20
 > From: Nick Hudson <skrll@netbsd.org>
 > To: gnats-bugs@NetBSD.org, kern-bug-people@netbsd.org,
 > gnats-admin@netbsd.org, netbsd-bugs@netbsd.org
 > Cc:=20
 > Subject: Re: kern/50491: unkillable wait in usbd_transfer while using =
 usmsc0
 > on raspberry pi 2
 > Date: Tue, 1 Dec 2015 14:33:58 +0000
 >=20
 > This is a multi-part message in MIME format.
 > --------------060900050601040906010405
 > Content-Type: text/plain; charset=3Dwindows-1252; format=3Dflowed
 > Content-Transfer-Encoding: 7bit
 >=20
 > On 12/01/15 06:50, mfpnb@plass-family.net wrote:
 >>> Number:         50491
 >>> Category:       kern
 >>> Synopsis:       unkillable wait in usbd_transfer while using usmsc0 =
 on raspberry pi 2
 >=20
 >=20
 >> usbd_do_request: not in process context
 >> usmsc0: warning: Failed to write register 0x10c
 >> usbd_do_request: not in process context
 >> usmsc0: warning: Failed to write register 0x110
 >> usbd_do_request: not in process context
 >> usmsc0: warning: Failed to write register 0x100
 >=20
 >=20
 > Please run with this patch to help determine why this is happening.
 >=20
 > It will drop to debugger where you can get a backtrace.
 >=20
 > Thanks,
 > Nick
 >=20
 > --------------060900050601040906010405
 > Content-Type: text/x-patch;
 >  name=3D"pr50491.diff"
 > Content-Transfer-Encoding: 7bit
 > Content-Disposition: attachment;
 >  filename=3D"pr50491.diff"
 >=20
 > Index: sys/dev/usb/usbdi.c
 > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
 > RCS file: /cvsroot/src/sys/dev/usb/usbdi.c,v
 > retrieving revision 1.161.2.1
 > diff -u -p -r1.161.2.1 usbdi.c
 > --- sys/dev/usb/usbdi.c	11 Feb 2015 09:32:19 -0000	=
 1.161.2.1
 > +++ sys/dev/usb/usbdi.c	1 Dec 2015 14:33:00 -0000
 > @@ -992,6 +992,8 @@ usbd_do_request_flags_pipe(usbd_device_h
 >  	usbd_xfer_handle xfer;
 >  	usbd_status err;
 >=20
 > +	ASSERT_SLEEPABLE();
 > +
 >  #ifdef DIAGNOSTIC
 >  	if (cpu_intr_p() || cpu_softintr_p()) {
 >  		printf("usbd_do_request: not in process context\n");
 >=20
 > --------------060900050601040906010405--
 >=20
 >=20
 >=20

 I'm running with the patch, and I still get the hangs, but so far this =
 condition has not been hit. I'll keep trying.

 - Michael=

From: Michael Plass <mfpnb@plass-family.net>
To: gnats-bugs@NetBSD.org
Cc: Michael Plass <mfpnb@plass-family.net>
Subject: Re: kern/50491: unkillable wait in usbd_transfer while using usmsc0 on raspberry pi 2
Date: Wed, 2 Dec 2015 21:26:11 -0800

 Nick,

 I saw one of the 'usbd_do_request: not in process context' messages go =
 by
 (actually while still coming up to multiuser mode), but apparently DEBUG =
 was
 not defined, so the ASSERT_SLEEPABLE() was a NOP. I've rebuilt with a =
 call to
 assert_sleepable() instead, and I'll run with that.

 That particular message was not accompanied by a hang.

 Meanwhile, I've tried running with usbdebug and dwc2debug set. Luckily =
 the hang
 still happens, I think even more readily than without the debug output. =
 (I also
 stopped syslogd to squelch some noise messages from the sd card.)

 Below are the last ~1k lines.

 Thanks,
 - Michael

 db{0}> write/l usbdebug 11
 netbsd:usbdebug         0 =3D 11
 db{0}> write/l dwc2debug 1
 netbsd:dwc2debug                0 =3D 1
 db{0}> cont
 ...
 usb_add_task: task=3D0xbac3d344
 usb_task_thread: woke up task=3D0xbac3d344
 usbd_alloc_xfer() =3D 0xbacb9ec0
 usbd_transfer: xfer=3D0xbacb9ec0, flags=3D0x2, pipe=3D0xbafa0780, =
 running=3D0
 usbd_dump_queue: pipe=3D0xbafa0780
 usb_allocmem: use frag=3D0xc90acd80 size=3D4
 dwc2_device_ctrl_transfer:=20
 usb_insert_transfer: pipe=3D0xbafa0780 running=3D0 timeout=3D5000
 dwc2_device_ctrl_start:=20
 dwc2_device_start: xfer=3D0xbacb9ec0 pipe=3D0xbafa0780
 dwctwo0: urb=3D0xb86e2648, xfer=3D0x0
 usb_schedsoftintr: polling=3D0
 usb_transfer_complete: pipe=3D0xbafa0780 xfer=3D0xbacb9ec0 status=3D0 =
 actlen=3D4
 usb_freemem: frag=3D0xc90acd80
 usb_transfer_complete: repeat=3D0 new head=3D0x0
 dwc2_device_ctrl_done: xfer=3D0xbacb9ec0
 usbd_start_next: pipe=3D0xbafa0780, xfer=3D0x0
 usbd_free_xfer: 0xbacb9ec0
 usbd_alloc_xfer() =3D 0xbacb9ec0
 usbd_transfer: xfer=3D0xbacb9ec0, flags=3D0x2, pipe=3D0xbafa0780, =
 running=3D0
 usbd_dump_queue: pipe=3D0xbafa0780
 usb_allocmem: use frag=3D0xc90acd80 size=3D4
 dwc2_device_ctrl_transfer:=20
 usb_insert_transfer: pipe=3D0xbafa0780 running=3D0 timeout=3D5000
 dwc2_device_ctrl_start:=20
 dwc2_device_start: xfer=3D0xbacb9ec0 pipe=3D0xbafa0780
 dwctwo0: urb=3D0xb86e2648, xfer=3D0x0
 usb_schedsoftintr: polling=3D0
 usb_transfer_complete: pipe=3D0xbafa0780 xfer=3D0xbacb9ec0 status=3D0 =
 actlen=3D4
 usb_freemem: frag=3D0xc90acd80
 usb_transfer_complete: repeat=3D0 new head=3D0x0
 dwc2_device_ctrl_done: xfer=3D0xbacb9ec0
 usbd_start_next: pipe=3D0xbafa0780, xfer=3D0x0
 usbd_free_xfer: 0xbacb9ec0
 usbd_alloc_xfer() =3D 0xbacb9ec0
 usbd_transfer: xfer=3D0xbacb9ec0, flags=3D0x2, pipe=3D0xbafa0780, =
 running=3D0
 usbd_dump_queue: pipe=3D0xbafa0780
 usb_allocmem: use frag=3D0xc90acd80 size=3D4
 dwc2_device_ctrl_transfer:=20
 usb_insert_transfer: pipe=3D0xbafa0780 running=3D0 timeout=3D5000
 dwc2_device_ctrl_start:=20
 dwc2_device_start: xfer=3D0xbacb9ec0 pipe=3D0xbafa0780
 dwctwo0: urb=3D0xb86e2648, xfer=3D0x0
 usb_schedsoftintr: polling=3D0
 usb_transfer_complete: pipe=3D0xbafa0780 xfer=3D0xbacb9ec0 status=3D0 =
 actlen=3D4
 usb_freemem: frag=3D0xc90acd80
 usb_transfer_complete: repeat=3D0 new head=3D0x0
 dwc2_device_ctrl_done: xfer=3D0xbacb9ec0
 usbd_start_next: pipe=3D0xbafa0780, xfer=3D0x0
 usbd_free_xfer: 0xbacb9ec0
 usbd_alloc_xfer() =3D 0xbacb9ec0
 usbd_transfer: xfer=3D0xbacb9ec0, flags=3D0x2, pipe=3D0xbafa0780, =
 running=3D0
 usbd_dump_queue: pipe=3D0xbafa0780
 usb_allocmem: use frag=3D0xc90acd80 size=3D4
 dwc2_device_ctrl_transfer:=20
 usb_insert_transfer: pipe=3D0xbafa0780 running=3D0 timeout=3D5000
 dwc2_device_ctrl_start:=20
 dwc2_device_start: xfer=3D0xbacb9ec0 pipe=3D0xbafa0780
 dwctwo0: urb=3D0xb86e2648, xfer=3D0x0
 usb_schedsoftintr: polling=3D0
 usb_transfer_complete: pipe=3D0xbafa0780 xfer=3D0xbacb9ec0 status=3D0 =
 actlen=3D4
 usb_freemem: frag=3D0xc90acd80
 usb_schedsoftintr: polling=3D0
 usb_transfer_complete: repeat=3D0 new head=3D0x0
 dwc2_device_ctrl_done: xfer=3D0xbacb9ec0
 usbd_start_next: pipe=3D0xbafa0780, xfer=3D0x0
 usb_transfer_complete: pipe=3D0xbafa0630 xfer=3D0xbacb9b00 status=3D0 =
 actlen=3D142
 usb_transfer_complete: repeat=3D0 new head=3D0x0
 dwc2_device_bulk_done: xfer=3D0xbacb9b00
 usbd_transfer: xfer=3D0xbacb9b00, flags=3D0x5, pipe=3D0xbafa0630, =
 running=3D1
 usbd_dump_queue: pipe=3D0xbafa0630
 dwc2_device_bulk_transfer: xfer=3D0xbacb9b00
 usb_insert_transfer: pipe=3D0xbafa0630 running=3D1 timeout=3D0
 usbd_start_next: pipe=3D0xbafa0630, xfer=3D0xbacb9b00
 dwc2_device_bulk_start: xfer=3D0xbacb9b00
 dwc2_device_start: xfer=3D0xbacb9b00 pipe=3D0xbafa0630
 dwctwo0: urb=3D0xbad7aa88, xfer=3D0x0
 usbd_free_xfer: 0xbacb9ec0
 usbd_alloc_xfer() =3D 0xbacb9ec0
 usbd_transfer: xfer=3D0xbacb9ec0, flags=3D0x2, pipe=3D0xbafa0780, =
 running=3D0
 usbd_dump_queue: pipe=3D0xbafa0780
 usb_allocmem: use frag=3D0xc90acd80 size=3D4
 dwc2_device_ctrl_transfer:=20
 usb_insert_transfer: pipe=3D0xbafa0780 running=3D0 timeout=3D5000
 dwc2_device_ctrl_start:=20
 dwc2_device_start: xfer=3D0xbacb9ec0 pipe=3D0xbafa0780
 dwctwo0: urb=3D0xb86e2648, xfer=3D0x0
 usb_schedsoftintr: polling=3D0
 usb_transfer_complete: pipe=3D0xbafa0780 xfer=3D0xbacb9ec0 status=3D0 =
 actlen=3D4
 usb_freemem: frag=3D0xc90acd80
 usb_transfer_complete: repeat=3D0 new head=3D0x0
 dwc2_device_ctrl_done: xfer=3D0xbacb9ec0
 usbd_start_next: pipe=3D0xbafa0780, xfer=3D0x0
 usbd_free_xfer: 0xbacb9ec0
 usbd_alloc_xfer() =3D 0xbacb9ec0
 usbd_transfer: xfer=3D0xbacb9ec0, flags=3D0x2, pipe=3D0xbafa0780, =
 running=3D0
 usbd_dump_queue: pipe=3D0xbafa0780
 usb_allocmem: use frag=3D0xc90acd80 size=3D4
 dwc2_device_ctrl_transfer:=20
 usb_insert_transfer: pipe=3D0xbafa0780 running=3D0 timeout=3D5000
 dwc2_device_ctrl_start:=20
 dwc2_device_start: xfer=3D0xbacb9ec0 pipe=3D0xbafa0780
 dwctwo0: urb=3D0xb86e2648, xfer=3D0x0
 usb_schedsoftintr: polling=3D0
 usb_transfer_complete: pipe=3D0xbafa0780 xfer=3D0xbacb9ec0 status=3D0 =
 actlen=3D4
 usb_freemem: frag=3D0xc90acd80
 usb_transfer_complete: repeat=3D0 new head=3D0x0
 dwc2_device_ctrl_done: xfer=3D0xbacb9ec0
 usbd_start_next: pipe=3D0xbafa0780, xfer=3D0x0
 usbd_free_xfer: 0xbacb9ec0
 usbd_alloc_xfer() =3D 0xbacb9ec0
 usbd_transfer: xfer=3D0xbacb9ec0, flags=3D0x2, pipe=3D0xbafa0780, =
 running=3D0
 usbd_dump_queue: pipe=3D0xbafa0780
 usb_allocmem: use frag=3D0xc90acd80 size=3D4
 dwc2_device_ctrl_transfer:=20
 usb_insert_transfer: pipe=3D0xbafa0780 running=3D0 timeout=3D5000
 dwc2_device_ctrl_start:=20
 dwc2_device_start: xfer=3D0xbacb9ec0 pipe=3D0xbafa0780
 dwctwo0: urb=3D0xb86e2648, xfer=3D0x0
 usb_schedsoftintr: polling=3D0
 usb_transfer_complete: pipe=3D0xbafa0780 xfer=3D0xbacb9ec0 status=3D0 =
 actlen=3D4
 usb_freemem: frag=3D0xc90acd80
 usb_transfer_complete: repeat=3D0 new head=3D0x0
 dwc2_device_ctrl_done: xfer=3D0xbacb9ec0
 usbd_start_next: pipe=3D0xbafa0780, xfer=3D0x0
 usbd_free_xfer: 0xbacb9ec0
 usbd_alloc_xfer() =3D 0xbacb9ec0
 usbd_transfer: xfer=3D0xbacb9ec0, flags=3D0x2, pipe=3D0xbafa0780, =
 running=3D0
 usbd_dump_queue: pipe=3D0xbafa0780
 usb_allocmem: use frag=3D0xc90acd80 size=3D4
 dwc2_device_ctrl_transfer:=20
 usb_insert_transfer: pipe=3D0xbafa0780 running=3D0 timeout=3D5000
 dwc2_device_ctrl_start:=20
 dwc2_device_start: xfer=3D0xbacb9ec0 pipe=3D0xbafa0780
 dwctwo0: urb=3D0xb86e2648, xfer=3D0x0
 usb_schedsoftintr: polling=3D0
 usb_transfer_complete: pipe=3D0xbafa0780 xfer=3D0xbacb9ec0 status=3D0 =
 actlen=3D4
 usb_freemem: frag=3D0xc90acd80
 usb_transfer_complete: repeat=3D0 new head=3D0x0
 dwc2_device_ctrl_done: xfer=3D0xbacb9ec0
 usbd_start_next: pipe=3D0xbafa0780, xfer=3D0x0
 usbd_free_xfer: 0xbacb9ec0
 usbd_alloc_xfer() =3D 0xbacb9ec0
 usbd_transfer: xfer=3D0xbacb9ec0, flags=3D0x2, pipe=3D0xbafa0780, =
 running=3D0
 usbd_dump_queue: pipe=3D0xbafa0780
 usb_allocmem: use frag=3D0xc90acd80 size=3D4
 dwc2_device_ctrl_transfer:=20
 usb_insert_transfer: pipe=3D0xbafa0780 running=3D0 timeout=3D5000
 dwc2_device_ctrl_start:=20
 dwc2_device_start: xfer=3D0xbacb9ec0 pipe=3D0xbafa0780
 dwctwo0: urb=3D0xb86e2648, xfer=3D0x0
 usb_schedsoftintr: polling=3D0
 usb_transfer_complete: pipe=3D0xbafa0780 xfer=3D0xbacb9ec0 status=3D0 =
 actlen=3D4
 usb_freemem: frag=3D0xc90acd80
 usb_transfer_complete: repeat=3D0 new head=3D0x0
 dwc2_device_ctrl_done: xfer=3D0xbacb9ec0
 usbd_start_next: pipe=3D0xbafa0780, xfer=3D0x0
 usbd_free_xfer: 0xbacb9ec0
 usbd_alloc_xfer() =3D 0xbacb9ec0
 usbd_transfer: xfer=3D0xbacb9ec0, flags=3D0x2, pipe=3D0xbafa0780, =
 running=3D0
 usbd_dump_queue: pipe=3D0xbafa0780
 usb_allocmem: use frag=3D0xc90acd80 size=3D4
 dwc2_device_ctrl_transfer:=20
 usb_insert_transfer: pipe=3D0xbafa0780 running=3D0 timeout=3D5000
 dwc2_device_ctrl_start:=20
 dwc2_device_start: xfer=3D0xbacb9ec0 pipe=3D0xbafa0780
 dwctwo0: urb=3D0xb86e2648, xfer=3D0x0
 usb_schedsoftintr: polling=3D0
 usb_transfer_complete: pipe=3D0xbafa0780 xfer=3D0xbacb9ec0 status=3D0 =
 actlen=3D4
 usb_freemem: frag=3D0xc90acd80
 usb_transfer_complete: repeat=3D0 new head=3D0x0
 dwc2_device_ctrl_done: xfer=3D0xbacb9ec0
 usbd_start_next: pipe=3D0xbafa0780, xfer=3D0x0
 usbd_free_xfer: 0xbacb9ec0
 usbd_alloc_xfer() =3D 0xbacb9ec0
 usbd_transfer: xfer=3D0xbacb9ec0, flags=3D0x2, pipe=3D0xbafa0780, =
 running=3D0
 usbd_dump_queue: pipe=3D0xbafa0780
 usb_allocmem: use frag=3D0xc90acd80 size=3D4
 dwc2_device_ctrl_transfer:=20
 usb_insert_transfer: pipe=3D0xbafa0780 running=3D0 timeout=3D5000
 dwc2_device_ctrl_start:=20
 dwc2_device_start: xfer=3D0xbacb9ec0 pipe=3D0xbafa0780
 dwctwo0: urb=3D0xb86e2648, xfer=3D0x0
 usb_schedsoftintr: polling=3D0
 usb_transfer_complete: pipe=3D0xbafa0780 xfer=3D0xbacb9ec0 status=3D0 =
 actlen=3D4
 usb_freemem: frag=3D0xc90acd80
 usb_transfer_complete: repeat=3D0 new head=3D0x0
 dwc2_device_ctrl_done: xfer=3D0xbacb9ec0
 usbd_start_next: pipe=3D0xbafa0780, xfer=3D0x0
 usbd_free_xfer: 0xbacb9ec0
 usbd_alloc_xfer() =3D 0xbacb9ec0
 usbd_transfer: xfer=3D0xbacb9ec0, flags=3D0x2, pipe=3D0xbafa0780, =
 running=3D0
 usbd_dump_queue: pipe=3D0xbafa0780
 usb_allocmem: use frag=3D0xc90acd80 size=3D4
 dwc2_device_ctrl_transfer:=20
 usb_insert_transfer: pipe=3D0xbafa0780 running=3D0 timeout=3D5000
 dwc2_device_ctrl_start:=20
 dwc2_device_start: xfer=3D0xbacb9ec0 pipe=3D0xbafa0780
 dwctwo0: urb=3D0xb86e2648, xfer=3D0x0
 usb_schedsoftintr: polling=3D0
 usb_transfer_complete: pipe=3D0xbafa0780 xfer=3D0xbacb9ec0 status=3D0 =
 actlen=3D4
 usb_freemem: frag=3D0xc90acd80
 usb_transfer_complete: repeat=3D0 new head=3D0x0
 dwc2_device_ctrl_done: xfer=3D0xbacb9ec0
 usbd_start_next: pipe=3D0xbafa0780, xfer=3D0x0
 usbd_free_xfer: 0xbacb9ec0
 usbd_alloc_xfer() =3D 0xbacb9ec0
 usbd_transfer: xfer=3D0xbacb9ec0, flags=3D0x2, pipe=3D0xbafa0780, =
 running=3D0
 usbd_dump_queue: pipe=3D0xbafa0780
 usb_allocmem: use frag=3D0xc90acd80 size=3D4
 dwc2_device_ctrl_transfer:=20
 usb_insert_transfer: pipe=3D0xbafa0780 running=3D0 timeout=3D5000
 dwc2_device_ctrl_start:=20
 dwc2_device_start: xfer=3D0xbacb9ec0 pipe=3D0xbafa0780
 dwctwo0: urb=3D0xb86e2648, xfer=3D0x0
 usb_schedsoftintr: polling=3D0
 usb_transfer_complete: pipe=3D0xbafa0780 xfer=3D0xbacb9ec0 status=3D0 =
 actlen=3D4
 usb_freemem: frag=3D0xc90acd80
 usb_transfer_complete: repeat=3D0 new head=3D0x0
 dwc2_device_ctrl_done: xfer=3D0xbacb9ec0
 usbd_start_next: pipe=3D0xbafa0780, xfer=3D0x0
 usbd_free_xfer: 0xbacb9ec0
 usbd_alloc_xfer() =3D 0xbacb9ec0
 usbd_transfer: xfer=3D0xbacb9ec0, flags=3D0x2, pipe=3D0xbafa0780, =
 running=3D0
 usbd_dump_queue: pipe=3D0xbafa0780
 usb_allocmem: use frag=3D0xc90acd80 size=3D4
 dwc2_device_ctrl_transfer:=20
 usb_insert_transfer: pipe=3D0xbafa0780 running=3D0 timeout=3D5000
 dwc2_device_ctrl_start:=20
 dwc2_device_start: xfer=3D0xbacb9ec0 pipe=3D0xbafa0780
 dwctwo0: urb=3D0xb86e2648, xfer=3D0x0
 usb_schedsoftintr: polling=3D0
 usb_transfer_complete: pipe=3D0xbafa0780 xfer=3D0xbacb9ec0 status=3D0 =
 actlen=3D4
 usb_freemem: frag=3D0xc90acd80
 usb_transfer_complete: repeat=3D0 new head=3D0x0
 dwc2_device_ctrl_done: xfer=3D0xbacb9ec0
 usbd_start_next: pipe=3D0xbafa0780, xfer=3D0x0
 usbd_free_xfer: 0xbacb9ec0
 usbd_alloc_xfer() =3D 0xbacb9ec0
 usbd_transfer: xfer=3D0xbacb9ec0, flags=3D0x2, pipe=3D0xbafa0780, =
 running=3D0
 usbd_dump_queue: pipe=3D0xbafa0780
 usb_allocmem: use frag=3D0xc90acd80 size=3D4
 dwc2_device_ctrl_transfer:=20
 usb_insert_transfer: pipe=3D0xbafa0780 running=3D0 timeout=3D5000
 dwc2_device_ctrl_start:=20
 dwc2_device_start: xfer=3D0xbacb9ec0 pipe=3D0xbafa0780
 dwctwo0: urb=3D0xb86e2648, xfer=3D0x0
 usb_schedsoftintr: polling=3D0
 usb_transfer_complete: pipe=3D0xbafa0780 xfer=3D0xbacb9ec0 status=3D0 =
 actlen=3D4
 usb_freemem: frag=3D0xc90acd80
 usb_transfer_complete: repeat=3D0 new head=3D0x0
 dwc2_device_ctrl_done: xfer=3D0xbacb9ec0
 usbd_start_next: pipe=3D0xbafa0780, xfer=3D0x0
 usbd_free_xfer: 0xbacb9ec0
 usbd_alloc_xfer() =3D 0xbacb9ec0
 usbd_transfer: xfer=3D0xbacb9ec0, flags=3D0x2, pipe=3D0xbafa0780, =
 running=3D0
 usbd_dump_queue: pipe=3D0xbafa0780
 usb_allocmem: use frag=3D0xc90acd80 size=3D4
 dwc2_device_ctrl_transfer:=20
 usb_insert_transfer: pipe=3D0xbafa0780 running=3D0 timeout=3D5000
 dwc2_device_ctrl_start:=20
 dwc2_device_start: xfer=3D0xbacb9ec0 pipe=3D0xbafa0780
 dwctwo0: urb=3D0xb86e2648, xfer=3D0x0
 usb_schedsoftintr: polling=3D0
 usb_transfer_complete: pipe=3D0xbafa0780 xfer=3D0xbacb9ec0 status=3D0 =
 actlen=3D4
 usb_freemem: frag=3D0xc90acd80
 usb_transfer_complete: repeat=3D0 new head=3D0x0
 dwc2_device_ctrl_done: xfer=3D0xbacb9ec0
 usbd_start_next: pipe=3D0xbafa0780, xfer=3D0x0
 usbd_free_xfer: 0xbacb9ec0
 usbd_alloc_xfer() =3D 0xbacb9ec0
 usbd_transfer: xfer=3D0xbacb9ec0, flags=3D0x2, pipe=3D0xbafa0780, =
 running=3D0
 usbd_dump_queue: pipe=3D0xbafa0780
 usb_allocmem: use frag=3D0xc90acd80 size=3D4
 dwc2_device_ctrl_transfer:=20
 usb_insert_transfer: pipe=3D0xbafa0780 running=3D0 timeout=3D5000
 dwc2_device_ctrl_start:=20
 dwc2_device_start: xfer=3D0xbacb9ec0 pipe=3D0xbafa0780
 dwctwo0: urb=3D0xb86e2648, xfer=3D0x0
 usb_schedsoftintr: polling=3D0
 usb_transfer_complete: pipe=3D0xbafa0780 xfer=3D0xbacb9ec0 status=3D0 =
 actlen=3D4
 usb_freemem: frag=3D0xc90acd80
 usb_transfer_complete: repeat=3D0 new head=3D0x0
 dwc2_device_ctrl_done: xfer=3D0xbacb9ec0
 usbd_start_next: pipe=3D0xbafa0780, xfer=3D0x0
 usbd_free_xfer: 0xbacb9ec0
 usbd_alloc_xfer() =3D 0xbacb9ec0
 usbd_transfer: xfer=3D0xbacb9ec0, flags=3D0x2, pipe=3D0xbafa0780, =
 running=3D0
 usbd_dump_queue: pipe=3D0xbafa0780
 usb_allocmem: use frag=3D0xc90acd80 size=3D4
 dwc2_device_ctrl_transfer:=20
 usb_insert_transfer: pipe=3D0xbafa0780 running=3D0 timeout=3D5000
 dwc2_device_ctrl_start:=20
 dwc2_device_start: xfer=3D0xbacb9ec0 pipe=3D0xbafa0780
 dwctwo0: urb=3D0xb86e2648, xfer=3D0x0
 usb_schedsoftintr: polling=3D0
 usb_transfer_complete: pipe=3D0xbafa0780 xfer=3D0xbacb9ec0 status=3D0 =
 actlen=3D4
 usb_freemem: frag=3D0xc90acd80
 usb_transfer_complete: repeat=3D0 new head=3D0x0
 dwc2_device_ctrl_done: xfer=3D0xbacb9ec0
 usbd_start_next: pipe=3D0xbafa0780, xfer=3D0x0
 usbd_free_xfer: 0xbacb9ec0
 usbd_alloc_xfer() =3D 0xbacb9ec0
 usbd_transfer: xfer=3D0xbacb9ec0, flags=3D0x2, pipe=3D0xbafa0780, =
 running=3D0
 usbd_dump_queue: pipe=3D0xbafa0780
 usb_allocmem: use frag=3D0xc90acd80 size=3D4
 dwc2_device_ctrl_transfer:=20
 usb_insert_transfer: pipe=3D0xbafa0780 running=3D0 timeout=3D5000
 dwc2_device_ctrl_start:=20
 dwc2_device_start: xfer=3D0xbacb9ec0 pipe=3D0xbafa0780
 dwctwo0: urb=3D0xb86e2648, xfer=3D0x0
 usb_schedsoftintr: polling=3D0
 usb_transfer_complete: pipe=3D0xbafa0780 xfer=3D0xbacb9ec0 status=3D0 =
 actlen=3D4
 usb_freemem: frag=3D0xc90acd80
 usb_transfer_complete: repeat=3D0 new head=3D0x0
 dwc2_device_ctrl_done: xfer=3D0xbacb9ec0
 usbd_start_next: pipe=3D0xbafa0780, xfer=3D0x0
 usbd_free_xfer: 0xbacb9ec0
 usbd_alloc_xfer() =3D 0xbacb9ec0
 usbd_transfer: xfer=3D0xbacb9ec0, flags=3D0x2, pipe=3D0xbafa0780, =
 running=3D0
 usbd_dump_queue: pipe=3D0xbafa0780
 usb_allocmem: use frag=3D0xc90acd80 size=3D4
 dwc2_device_ctrl_transfer:=20
 usb_insert_transfer: pipe=3D0xbafa0780 running=3D0 timeout=3D5000
 dwc2_device_ctrl_start:=20
 dwc2_device_start: xfer=3D0xbacb9ec0 pipe=3D0xbafa0780
 dwctwo0: urb=3D0xb86e2648, xfer=3D0x0
 usb_schedsoftintr: polling=3D0
 usb_transfer_complete: pipe=3D0xbafa0780 xfer=3D0xbacb9ec0 status=3D0 =
 actlen=3D4
 usb_freemem: frag=3D0xc90acd80
 usb_transfer_complete: repeat=3D0 new head=3D0x0
 dwc2_device_ctrl_done: xfer=3D0xbacb9ec0
 usbd_start_next: pipe=3D0xbafa0780, xfer=3D0x0
 usbd_free_xfer: 0xbacb9ec0
 usbd_alloc_xfer() =3D 0xbacb9ec0
 usbd_transfer: xfer=3D0xbacb9ec0, flags=3D0x2, pipe=3D0xbafa0780, =
 running=3D0
 usbd_dump_queue: pipe=3D0xbafa0780
 usb_allocmem: use frag=3D0xc90acd80 size=3D4
 dwc2_device_ctrl_transfer:=20
 usb_insert_transfer: pipe=3D0xbafa0780 running=3D0 timeout=3D5000
 dwc2_device_ctrl_start:=20
 dwc2_device_start: xfer=3D0xbacb9ec0 pipe=3D0xbafa0780
 dwctwo0: urb=3D0xb86e2648, xfer=3D0x0
 usb_schedsoftintr: polling=3D0
 usb_transfer_complete: pipe=3D0xbafa0780 xfer=3D0xbacb9ec0 status=3D0 =
 actlen=3D4
 usb_freemem: frag=3D0xc90acd80
 usb_transfer_complete: repeat=3D0 new head=3D0x0
 dwc2_device_ctrl_done: xfer=3D0xbacb9ec0
 usbd_start_next: pipe=3D0xbafa0780, xfer=3D0x0
 usbd_free_xfer: 0xbacb9ec0
 usbd_alloc_xfer() =3D 0xbacb9ec0
 usbd_transfer: xfer=3D0xbacb9ec0, flags=3D0x2, pipe=3D0xbafa0780, =
 running=3D0
 usbd_dump_queue: pipe=3D0xbafa0780
 usb_allocmem: use frag=3D0xc90acd80 size=3D4
 dwc2_device_ctrl_transfer:=20
 usb_insert_transfer: pipe=3D0xbafa0780 running=3D0 timeout=3D5000
 dwc2_device_ctrl_start:=20
 dwc2_device_start: xfer=3D0xbacb9ec0 pipe=3D0xbafa0780
 dwctwo0: urb=3D0xb86e2648, xfer=3D0x0
 usb_schedsoftintr: polling=3D0
 usb_transfer_complete: pipe=3D0xbafa0780 xfer=3D0xbacb9ec0 status=3D0 =
 actlen=3D4
 usb_freemem: frag=3D0xc90acd80
 usb_transfer_complete: repeat=3D0 new head=3D0x0
 dwc2_device_ctrl_done: xfer=3D0xbacb9ec0
 usbd_start_next: pipe=3D0xbafa0780, xfer=3D0x0
 usbd_free_xfer: 0xbacb9ec0
 usbd_alloc_xfer() =3D 0xbacb9ec0
 usbd_transfer: xfer=3D0xbacb9ec0, flags=3D0x2, pipe=3D0xbafa0780, =
 running=3D0
 usbd_dump_queue: pipe=3D0xbafa0780
 usb_allocmem: use frag=3D0xc90acd80 size=3D4
 dwc2_device_ctrl_transfer:=20
 usb_insert_transfer: pipe=3D0xbafa0780 running=3D0 timeout=3D5000
 dwc2_device_ctrl_start:=20
 dwc2_device_start: xfer=3D0xbacb9ec0 pipe=3D0xbafa0780
 dwctwo0: urb=3D0xb86e2648, xfer=3D0x0
 usb_schedsoftintr: polling=3D0
 usb_transfer_complete: pipe=3D0xbafa0780 xfer=3D0xbacb9ec0 status=3D0 =
 actlen=3D4
 usb_freemem: frag=3D0xc90acd80
 usb_transfer_complete: repeat=3D0 new head=3D0x0
 dwc2_device_ctrl_done: xfer=3D0xbacb9ec0
 usbd_start_next: pipe=3D0xbafa0780, xfer=3D0x0
 usbd_free_xfer: 0xbacb9ec0
 usbd_alloc_xfer() =3D 0xbacb9ec0
 usbd_transfer: xfer=3D0xbacb9ec0, flags=3D0x2, pipe=3D0xbafa0780, =
 running=3D0
 usbd_dump_queue: pipe=3D0xbafa0780
 usb_allocmem: use frag=3D0xc90acd80 size=3D4
 dwc2_device_ctrl_transfer:=20
 usb_insert_transfer: pipe=3D0xbafa0780 running=3D0 timeout=3D5000
 dwc2_device_ctrl_start:=20
 dwc2_device_start: xfer=3D0xbacb9ec0 pipe=3D0xbafa0780
 dwctwo0: urb=3D0xb86e2648, xfer=3D0x0
 usb_schedsoftintr: polling=3D0
 usb_transfer_complete: pipe=3D0xbafa0780 xfer=3D0xbacb9ec0 status=3D0 =
 actlen=3D4
 usb_freemem: frag=3D0xc90acd80
 usb_transfer_complete: repeat=3D0 new head=3D0x0
 dwc2_device_ctrl_done: xfer=3D0xbacb9ec0
 usbd_start_next: pipe=3D0xbafa0780, xfer=3D0x0
 usbd_free_xfer: 0xbacb9ec0
 usbd_alloc_xfer() =3D 0xbacb9ec0
 usbd_transfer: xfer=3D0xbacb9ec0, flags=3D0x2, pipe=3D0xbafa0780, =
 running=3D0
 usbd_dump_queue: pipe=3D0xbafa0780
 usb_allocmem: use frag=3D0xc90acd80 size=3D4
 dwc2_device_ctrl_transfer:=20
 usb_insert_transfer: pipe=3D0xbafa0780 running=3D0 timeout=3D5000
 dwc2_device_ctrl_start:=20
 dwc2_device_start: xfer=3D0xbacb9ec0 pipe=3D0xbafa0780
 dwctwo0: urb=3D0xb86e2648, xfer=3D0x0
 usb_schedsoftintr: polling=3D0
 usb_transfer_complete: pipe=3D0xbafa0780 xfer=3D0xbacb9ec0 status=3D0 =
 actlen=3D4
 usb_freemem: frag=3D0xc90acd80
 usb_transfer_complete: repeat=3D0 new head=3D0x0
 dwc2_device_ctrl_done: xfer=3D0xbacb9ec0
 usbd_start_next: pipe=3D0xbafa0780, xfer=3D0x0
 usbd_free_xfer: 0xbacb9ec0
 usbd_alloc_xfer() =3D 0xbacb9ec0
 usbd_transfer: xfer=3D0xbacb9ec0, flags=3D0x2, pipe=3D0xbafa0780, =
 running=3D0
 usbd_dump_queue: pipe=3D0xbafa0780
 usb_allocmem: use frag=3D0xc90acd80 size=3D4
 dwc2_device_ctrl_transfer:=20
 usb_insert_transfer: pipe=3D0xbafa0780 running=3D0 timeout=3D5000
 dwc2_device_ctrl_start:=20
 dwc2_device_start: xfer=3D0xbacb9ec0 pipe=3D0xbafa0780
 dwctwo0: urb=3D0xb86e2648, xfer=3D0x0
 usb_schedsoftintr: polling=3D0
 usb_transfer_complete: pipe=3D0xbafa0780 xfer=3D0xbacb9ec0 status=3D0 =
 actlen=3D4
 usb_freemem: frag=3D0xc90acd80
 usb_transfer_complete: repeat=3D0 new head=3D0x0
 dwc2_device_ctrl_done: xfer=3D0xbacb9ec0
 usbd_start_next: pipe=3D0xbafa0780, xfer=3D0x0
 usbd_free_xfer: 0xbacb9ec0
 usbd_alloc_xfer() =3D 0xbacb9ec0
 usbd_transfer: xfer=3D0xbacb9ec0, flags=3D0x2, pipe=3D0xbafa0780, =
 running=3D0
 usbd_dump_queue: pipe=3D0xbafa0780
 usb_allocmem: use frag=3D0xc90acd80 size=3D4
 dwc2_device_ctrl_transfer:=20
 usb_insert_transfer: pipe=3D0xbafa0780 running=3D0 timeout=3D5000
 dwc2_device_ctrl_start:=20
 dwc2_device_start: xfer=3D0xbacb9ec0 pipe=3D0xbafa0780
 dwctwo0: urb=3D0xb86e2648, xfer=3D0x0
 usb_schedsoftintr: polling=3D0
 usb_transfer_complete: pipe=3D0xbafa0780 xfer=3D0xbacb9ec0 status=3D0 =
 actlen=3D4
 usb_freemem: frag=3D0xc90acd80
 usb_transfer_complete: repeat=3D0 new head=3D0x0
 dwc2_device_ctrl_done: xfer=3D0xbacb9ec0
 usbd_start_next: pipe=3D0xbafa0780, xfer=3D0x0
 usbd_free_xfer: 0xbacb9ec0
 usbd_alloc_xfer() =3D 0xbacb9ec0
 usbd_transfer: xfer=3D0xbacb9ec0, flags=3D0x2, pipe=3D0xbafa0780, =
 running=3D0
 usbd_dump_queue: pipe=3D0xbafa0780
 usb_allocmem: use frag=3D0xc90acd80 size=3D4
 dwc2_device_ctrl_transfer:=20
 usb_insert_transfer: pipe=3D0xbafa0780 running=3D0 timeout=3D5000
 dwc2_device_ctrl_start:=20
 dwc2_device_start: xfer=3D0xbacb9ec0 pipe=3D0xbafa0780
 dwctwo0: urb=3D0xb86e2648, xfer=3D0x0
 usb_schedsoftintr: polling=3D0
 usb_transfer_complete: pipe=3D0xbafa0780 xfer=3D0xbacb9ec0 status=3D0 =
 actlen=3D4
 usb_freemem: frag=3D0xc90acd80
 usb_transfer_complete: repeat=3D0 new head=3D0x0
 dwc2_device_ctrl_done: xfer=3D0xbacb9ec0
 usbd_start_next: pipe=3D0xbafa0780, xfer=3D0x0
 usbd_free_xfer: 0xbacb9ec0
 usb_schedsoftintr: polling=3D0
 usb_transfer_complete: pipe=3D0xbafa0630 xfer=3D0xbacb9b00 status=3D0 =
 actlen=3D128
 usb_transfer_complete: repeat=3D0 new head=3D0x0
 dwc2_device_bulk_done: xfer=3D0xbacb9b00
 usbd_transfer: xfer=3D0xbacb9b00, flags=3D0x5, pipe=3D0xbafa0630, =
 running=3D1
 usbd_dump_queue: pipe=3D0xbafa0630
 dwc2_device_bulk_transfer: xfer=3D0xbacb9b00
 usb_insert_transfer: pipe=3D0xbafa0630 running=3D1 timeout=3D0
 usbd_start_next: pipe=3D0xbafa0630, xfer=3D0xbacb9b00
 dwc2_device_bulk_start: xfer=3D0xbacb9b00
 dwc2_device_start: xfer=3D0xbacb9b00 pipe=3D0xbafa0630
 dwctwo0: urb=3D0xbad7aa88, xfer=3D0x0
 usbd_transfer: xfer=3D0xbacb9a40, flags=3D0x9, pipe=3D0xbafa05c0, =
 running=3D0
 usbd_dump_queue: pipe=3D0xbafa05c0
 dwc2_device_bulk_transfer: xfer=3D0xbacb9a40
 usb_insert_transfer: pipe=3D0xbafa05c0 running=3D0 timeout=3D10000
 dwc2_device_bulk_start: xfer=3D0xbacb9a40
 dwc2_device_start: xfer=3D0xbacb9a40 pipe=3D0xbafa05c0
 dwctwo0: urb=3D0xbad7a908, xfer=3D0x0
 usb_schedsoftintr: polling=3D0
 usb_schedsoftintr: polling=3D0
 usb_transfer_complete: pipe=3D0xbafa05c0 xfer=3D0xbacb9a40 status=3D0 =
 actlen=3D126
 usb_transfer_complete: repeat=3D0 new head=3D0x0
 dwc2_device_bulk_done: xfer=3D0xbacb9a40
 usbd_start_next: pipe=3D0xbafa05c0, xfer=3D0x0
 usb_transfer_complete: pipe=3D0xbafa0630 xfer=3D0xbacb9b00 status=3D0 =
 actlen=3D76
 usb_transfer_complete: repeat=3D0 new head=3D0x0
 dwc2_device_bulk_done: xfer=3D0xbacb9b00
 usbd_transfer: xfer=3D0xbacb9b00, flags=3D0x5, pipe=3D0xbafa0630, =
 running=3D1
 usbd_dump_queue: pipe=3D0xbafa0630
 dwc2_device_bulk_transfer: xfer=3D0xbacb9b00
 usb_insert_transfer: pipe=3D0xbafa0630 running=3D1 timeout=3D0
 usbd_start_next: pipe=3D0xbafa0630, xfer=3D0xbacb9b00
 dwc2_device_bulk_start: xfer=3D0xbacb9b00
 dwc2_device_start: xfer=3D0xbacb9b00 pipe=3D0xbafa0630
 dwctwo0: urb=3D0xbad7aa88, xfer=3D0x0
 usb_add_task: task=3D0xbac3d344
 usb_task_thread: woke up task=3D0xbac3d344
 usbd_alloc_xfer() =3D 0xbacb9ec0
 usbd_transfer: xfer=3D0xbacb9ec0, flags=3D0x2, pipe=3D0xbafa0780, =
 running=3D0
 usbd_dump_queue: pipe=3D0xbafa0780
 usb_allocmem: use frag=3D0xc90acd80 size=3D4
 dwc2_device_ctrl_transfer:=20
 usb_insert_transfer: pipe=3D0xbafa0780 running=3D0 timeout=3D5000
 dwc2_device_ctrl_start:=20
 dwc2_device_start: xfer=3D0xbacb9ec0 pipe=3D0xbafa0780
 dwctwo0: urb=3D0xb86e2648, xfer=3D0x0
 usb_schedsoftintr: polling=3D0
 usb_transfer_complete: pipe=3D0xbafa0780 xfer=3D0xbacb9ec0 status=3D0 =
 actlen=3D4
 usb_freemem: frag=3D0xc90acd80
 usb_transfer_complete: repeat=3D0 new head=3D0x0
 dwc2_device_ctrl_done: xfer=3D0xbacb9ec0
 usbd_start_next: pipe=3D0xbafa0780, xfer=3D0x0
 usbd_free_xfer: 0xbacb9ec0
 usbd_alloc_xfer() =3D 0xbacb9ec0
 usbd_transfer: xfer=3D0xbacb9ec0, flags=3D0x2, pipe=3D0xbafa0780, =
 running=3D0
 usbd_dump_queue: pipe=3D0xbafa0780
 usb_allocmem: use frag=3D0xc90acd80 size=3D4
 dwc2_device_ctrl_transfer:=20
 usb_insert_transfer: pipe=3D0xbafa0780 running=3D0 timeout=3D5000
 dwc2_device_ctrl_start:=20
 dwc2_device_start: xfer=3D0xbacb9ec0 pipe=3D0xbafa0780
 dwctwo0: urb=3D0xb86e2648, xfer=3D0x0
 usb_schedsoftintr: polling=3D0
 usb_transfer_complete: pipe=3D0xbafa0780 xfer=3D0xbacb9ec0 status=3D0 =
 actlen=3D4
 usb_freemem: frag=3D0xc90acd80
 usb_transfer_complete: repeat=3D0 new head=3D0x0
 dwc2_device_ctrl_done: xfer=3D0xbacb9ec0
 usbd_start_next: pipe=3D0xbafa0780, xfer=3D0x0
 usbd_free_xfer: 0xbacb9ec0
 usbd_alloc_xfer() =3D 0xbacb9ec0
 usbd_transfer: xfer=3D0xbacb9ec0, flags=3D0x2, pipe=3D0xbafa0780, =
 running=3D0
 usbd_dump_queue: pipe=3D0xbafa0780
 usb_allocmem: use frag=3D0xc90acd80 size=3D4
 dwc2_device_ctrl_transfer:=20
 usb_insert_transfer: pipe=3D0xbafa0780 running=3D0 timeout=3D5000
 dwc2_device_ctrl_start:=20
 dwc2_device_start: xfer=3D0xbacb9ec0 pipe=3D0xbafa0780
 dwctwo0: urb=3D0xb86e2648, xfer=3D0x0
 usb_schedsoftintr: polling=3D0
 usb_transfer_complete: pipe=3D0xbafa0780 xfer=3D0xbacb9ec0 status=3D0 =
 actlen=3D4
 usb_freemem: frag=3D0xc90acd80
 usb_transfer_complete: repeat=3D0 new head=3D0x0
 dwc2_device_ctrl_done: xfer=3D0xbacb9ec0
 usbd_start_next: pipe=3D0xbafa0780, xfer=3D0x0
 usbd_free_xfer: 0xbacb9ec0
 usbd_alloc_xfer() =3D 0xbacb9ec0
 usbd_transfer: xfer=3D0xbacb9ec0, flags=3D0x2, pipe=3D0xbafa0780, =
 running=3D0
 usbd_dump_queue: pipe=3D0xbafa0780
 usb_allocmem: use frag=3D0xc90acd80 size=3D4
 dwc2_device_ctrl_transfer:=20
 usb_insert_transfer: pipe=3D0xbafa0780 running=3D0 timeout=3D5000
 dwc2_device_ctrl_start:=20
 dwc2_device_start: xfer=3D0xbacb9ec0 pipe=3D0xbafa0780
 dwctwo0: urb=3D0xb86e2648, xfer=3D0x0
 usb_schedsoftintr: polling=3D0
 usb_transfer_complete: pipe=3D0xbafa0780 xfer=3D0xbacb9ec0 status=3D0 =
 actlen=3D4
 usb_freemem: frag=3D0xc90acd80
 usb_transfer_complete: repeat=3D0 new head=3D0x0
 dwc2_device_ctrl_done: xfer=3D0xbacb9ec0
 usbd_start_next: pipe=3D0xbafa0780, xfer=3D0x0
 usbd_free_xfer: 0xbacb9ec0
 usbd_alloc_xfer() =3D 0xbacb9ec0
 usbd_transfer: xfer=3D0xbacb9ec0, flags=3D0x2, pipe=3D0xbafa0780, =
 running=3D0
 usbd_dump_queue: pipe=3D0xbafa0780
 usb_allocmem: use frag=3D0xc90acd80 size=3D4
 dwc2_device_ctrl_transfer:=20
 usb_insert_transfer: pipe=3D0xbafa0780 running=3D0 timeout=3D5000
 dwc2_device_ctrl_start:=20
 dwc2_device_start: xfer=3D0xbacb9ec0 pipe=3D0xbafa0780
 dwctwo0: urb=3D0xb86e2648, xfer=3D0x0
 usb_schedsoftintr: polling=3D0
 usb_transfer_complete: pipe=3D0xbafa0780 xfer=3D0xbacb9ec0 status=3D0 =
 actlen=3D4
 usb_freemem: frag=3D0xc90acd80
 usb_transfer_complete: repeat=3D0 new head=3D0x0
 dwc2_device_ctrl_done: xfer=3D0xbacb9ec0
 usbd_start_next: pipe=3D0xbafa0780, xfer=3D0x0
 usbd_free_xfer: 0xbacb9ec0
 usbd_alloc_xfer() =3D 0xbacb9ec0
 usbd_transfer: xfer=3D0xbacb9ec0, flags=3D0x2, pipe=3D0xbafa0780, =
 running=3D0
 usbd_dump_queue: pipe=3D0xbafa0780
 usb_allocmem: use frag=3D0xc90acd80 size=3D4
 dwc2_device_ctrl_transfer:=20
 usb_insert_transfer: pipe=3D0xbafa0780 running=3D0 timeout=3D5000
 dwc2_device_ctrl_start:=20
 dwc2_device_start: xfer=3D0xbacb9ec0 pipe=3D0xbafa0780
 dwctwo0: urb=3D0xb86e2648, xfer=3D0x0
 usb_schedsoftintr: polling=3D0
 usb_transfer_complete: pipe=3D0xbafa0780 xfer=3D0xbacb9ec0 status=3D0 =
 actlen=3D4
 usb_freemem: frag=3D0xc90acd80
 usb_transfer_complete: repeat=3D0 new head=3D0x0
 dwc2_device_ctrl_done: xfer=3D0xbacb9ec0
 usbd_start_next: pipe=3D0xbafa0780, xfer=3D0x0
 usbd_free_xfer: 0xbacb9ec0
 usbd_alloc_xfer() =3D 0xbacb9ec0
 usbd_transfer: xfer=3D0xbacb9ec0, flags=3D0x2, pipe=3D0xbafa0780, =
 running=3D0
 usbd_dump_queue: pipe=3D0xbafa0780
 usb_allocmem: use frag=3D0xc90acd80 size=3D4
 dwc2_device_ctrl_transfer:=20
 usb_insert_transfer: pipe=3D0xbafa0780 running=3D0 timeout=3D5000
 dwc2_device_ctrl_start:=20
 dwc2_device_start: xfer=3D0xbacb9ec0 pipe=3D0xbafa0780
 dwctwo0: urb=3D0xb86e2648, xfer=3D0x0
 usb_schedsoftintr: polling=3D0
 usb_transfer_complete: pipe=3D0xbafa0780 xfer=3D0xbacb9ec0 status=3D0 =
 actlen=3D4
 usb_freemem: frag=3D0xc90acd80
 usb_transfer_complete: repeat=3D0 new head=3D0x0
 dwc2_device_ctrl_done: xfer=3D0xbacb9ec0
 usbd_start_next: pipe=3D0xbafa0780, xfer=3D0x0
 usbd_free_xfer: 0xbacb9ec0
 usbd_alloc_xfer() =3D 0xbacb9ec0
 usbd_transfer: xfer=3D0xbacb9ec0, flags=3D0x2, pipe=3D0xbafa0780, =
 running=3D0
 usbd_dump_queue: pipe=3D0xbafa0780
 usb_allocmem: use frag=3D0xc90acd80 size=3D4
 dwc2_device_ctrl_transfer:=20
 usb_insert_transfer: pipe=3D0xbafa0780 running=3D0 timeout=3D5000
 dwc2_device_ctrl_start:=20
 dwc2_device_start: xfer=3D0xbacb9ec0 pipe=3D0xbafa0780
 dwctwo0: urb=3D0xb86e2648, xfer=3D0x0
 usb_schedsoftintr: polling=3D0
 usb_transfer_complete: pipe=3D0xbafa0780 xfer=3D0xbacb9ec0 status=3D0 =
 actlen=3D4
 usb_freemem: frag=3D0xc90acd80
 usb_transfer_complete: repeat=3D0 new head=3D0x0
 dwc2_device_ctrl_done: xfer=3D0xbacb9ec0
 usbd_start_next: pipe=3D0xbafa0780, xfer=3D0x0
 usbd_free_xfer: 0xbacb9ec0
 usbd_alloc_xfer() =3D 0xbacb9ec0
 usbd_transfer: xfer=3D0xbacb9ec0, flags=3D0x2, pipe=3D0xbafa0780, =
 running=3D0
 usbd_dump_queue: pipe=3D0xbafa0780
 usb_allocmem: use frag=3D0xc90acd80 size=3D4
 dwc2_device_ctrl_transfer:=20
 usb_insert_transfer: pipe=3D0xbafa0780 running=3D0 timeout=3D5000
 dwc2_device_ctrl_start:=20
 dwc2_device_start: xfer=3D0xbacb9ec0 pipe=3D0xbafa0780
 dwctwo0: urb=3D0xb86e2648, xfer=3D0x0
 usb_schedsoftintr: polling=3D0
 usb_transfer_complete: pipe=3D0xbafa0780 xfer=3D0xbacb9ec0 status=3D0 =
 actlen=3D4
 usb_freemem: frag=3D0xc90acd80
 usb_transfer_complete: repeat=3D0 new head=3D0x0
 dwc2_device_ctrl_done: xfer=3D0xbacb9ec0
 usbd_start_next: pipe=3D0xbafa0780, xfer=3D0x0
 usbd_free_xfer: 0xbacb9ec0
 usbd_alloc_xfer() =3D 0xbacb9ec0
 usbd_transfer: xfer=3D0xbacb9ec0, flags=3D0x2, pipe=3D0xbafa0780, =
 running=3D0
 usbd_dump_queue: pipe=3D0xbafa0780
 usb_allocmem: use frag=3D0xc90acd80 size=3D4
 dwc2_device_ctrl_transfer:=20
 usb_insert_transfer: pipe=3D0xbafa0780 running=3D0 timeout=3D5000
 dwc2_device_ctrl_start:=20
 dwc2_device_start: xfer=3D0xbacb9ec0 pipe=3D0xbafa0780
 dwctwo0: urb=3D0xb86e2648, xfer=3D0x0
 usb_schedsoftintr: polling=3D0
 usb_transfer_complete: pipe=3D0xbafa0780 xfer=3D0xbacb9ec0 status=3D0 =
 actlen=3D4
 usb_freemem: frag=3D0xc90acd80
 usb_transfer_complete: repeat=3D0 new head=3D0x0
 dwc2_device_ctrl_done: xfer=3D0xbacb9ec0
 usbd_start_next: pipe=3D0xbafa0780, xfer=3D0x0
 usbd_free_xfer: 0xbacb9ec0
 usbd_alloc_xfer() =3D 0xbacb9ec0
 usbd_transfer: xfer=3D0xbacb9ec0, flags=3D0x2, pipe=3D0xbafa0780, =
 running=3D0
 usbd_dump_queue: pipe=3D0xbafa0780
 usb_allocmem: use frag=3D0xc90acd80 size=3D4
 dwc2_device_ctrl_transfer:=20
 usb_insert_transfer: pipe=3D0xbafa0780 running=3D0 timeout=3D5000
 dwc2_device_ctrl_start:=20
 dwc2_device_start: xfer=3D0xbacb9ec0 pipe=3D0xbafa0780
 dwctwo0: urb=3D0xb86e2648, xfer=3D0x0
 usb_schedsoftintr: polling=3D0
 usb_transfer_complete: pipe=3D0xbafa0780 xfer=3D0xbacb9ec0 status=3D0 =
 actlen=3D4
 usb_freemem: frag=3D0xc90acd80
 usb_transfer_complete: repeat=3D0 new head=3D0x0
 dwc2_device_ctrl_done: xfer=3D0xbacb9ec0
 usbd_start_next: pipe=3D0xbafa0780, xfer=3D0x0
 usbd_free_xfer: 0xbacb9ec0
 usbd_alloc_xfer() =3D 0xbacb9ec0
 usbd_transfer: xfer=3D0xbacb9ec0, flags=3D0x2, pipe=3D0xbafa0780, =
 running=3D0
 usbd_dump_queue: pipe=3D0xbafa0780
 usb_allocmem: use frag=3D0xc90acd80 size=3D4
 dwc2_device_ctrl_transfer:=20
 usb_insert_transfer: pipe=3D0xbafa0780 running=3D0 timeout=3D5000
 dwc2_device_ctrl_start:=20
 dwc2_device_start: xfer=3D0xbacb9ec0 pipe=3D0xbafa0780
 dwctwo0: urb=3D0xb86e2648, xfer=3D0x0
 usb_schedsoftintr: polling=3D0
 usb_transfer_complete: pipe=3D0xbafa0780 xfer=3D0xbacb9ec0 status=3D0 =
 actlen=3D4
 usb_freemem: frag=3D0xc90acd80
 usb_transfer_complete: repeat=3D0 new head=3D0x0
 dwc2_device_ctrl_done: xfer=3D0xbacb9ec0
 usbd_start_next: pipe=3D0xbafa0780, xfer=3D0x0
 usbd_free_xfer: 0xbacb9ec0
 usbd_alloc_xfer() =3D 0xbacb9ec0
 usbd_transfer: xfer=3D0xbacb9ec0, flags=3D0x2, pipe=3D0xbafa0780, =
 running=3D0
 usbd_dump_queue: pipe=3D0xbafa0780
 usb_allocmem: use frag=3D0xc90acd80 size=3D4
 dwc2_device_ctrl_transfer:=20
 usb_insert_transfer: pipe=3D0xbafa0780 running=3D0 timeout=3D5000
 dwc2_device_ctrl_start:=20
 dwc2_device_start: xfer=3D0xbacb9ec0 pipe=3D0xbafa0780
 dwctwo0: urb=3D0xb86e2648, xfer=3D0x0
 usb_schedsoftintr: polling=3D0
 usb_transfer_complete: pipe=3D0xbafa0780 xfer=3D0xbacb9ec0 status=3D0 =
 actlen=3D4
 usb_freemem: frag=3D0xc90acd80
 usb_transfer_complete: repeat=3D0 new head=3D0x0
 dwc2_device_ctrl_done: xfer=3D0xbacb9ec0
 usbd_start_next: pipe=3D0xbafa0780, xfer=3D0x0
 usbd_free_xfer: 0xbacb9ec0
 usbd_alloc_xfer() =3D 0xbacb9ec0
 usbd_transfer: xfer=3D0xbacb9ec0, flags=3D0x2, pipe=3D0xbafa0780, =
 running=3D0
 usbd_dump_queue: pipe=3D0xbafa0780
 usb_allocmem: use frag=3D0xc90acd80 size=3D4
 dwc2_device_ctrl_transfer:=20
 usb_insert_transfer: pipe=3D0xbafa0780 running=3D0 timeout=3D5000
 dwc2_device_ctrl_start:=20
 dwc2_device_start: xfer=3D0xbacb9ec0 pipe=3D0xbafa0780
 dwctwo0: urb=3D0xb86e2648, xfer=3D0x0
 usb_schedsoftintr: polling=3D0
 usb_transfer_complete: pipe=3D0xbafa0780 xfer=3D0xbacb9ec0 status=3D0 =
 actlen=3D4
 usb_freemem: frag=3D0xc90acd80
 usb_transfer_complete: repeat=3D0 new head=3D0x0
 dwc2_device_ctrl_done: xfer=3D0xbacb9ec0
 usbd_start_next: pipe=3D0xbafa0780, xfer=3D0x0
 usbd_free_xfer: 0xbacb9ec0
 usbd_alloc_xfer() =3D 0xbacb9ec0
 usbd_transfer: xfer=3D0xbacb9ec0, flags=3D0x2, pipe=3D0xbafa0780, =
 running=3D0
 usbd_dump_queue: pipe=3D0xbafa0780
 usb_allocmem: use frag=3D0xc90acd80 size=3D4
 dwc2_device_ctrl_transfer:=20
 usb_insert_transfer: pipe=3D0xbafa0780 running=3D0 timeout=3D5000
 dwc2_device_ctrl_start:=20
 dwc2_device_start: xfer=3D0xbacb9ec0 pipe=3D0xbafa0780
 dwctwo0: urb=3D0xb86e2648, xfer=3D0x0
 usb_schedsoftintr: polling=3D0
 usb_transfer_complete: pipe=3D0xbafa0780 xfer=3D0xbacb9ec0 status=3D0 =
 actlen=3D4
 usb_freemem: frag=3D0xc90acd80
 usb_transfer_complete: repeat=3D0 new head=3D0x0
 dwc2_device_ctrl_done: xfer=3D0xbacb9ec0
 usbd_start_next: pipe=3D0xbafa0780, xfer=3D0x0
 usbd_free_xfer: 0xbacb9ec0
 usbd_alloc_xfer() =3D 0xbacb9ec0
 usbd_transfer: xfer=3D0xbacb9ec0, flags=3D0x2, pipe=3D0xbafa0780, =
 running=3D0
 usbd_dump_queue: pipe=3D0xbafa0780
 usb_allocmem: use frag=3D0xc90acd80 size=3D4
 dwc2_device_ctrl_transfer:=20
 usb_insert_transfer: pipe=3D0xbafa0780 running=3D0 timeout=3D5000
 dwc2_device_ctrl_start:=20
 dwc2_device_start: xfer=3D0xbacb9ec0 pipe=3D0xbafa0780
 dwctwo0: urb=3D0xb86e2648, xfer=3D0x0
 usb_schedsoftintr: polling=3D0
 usb_transfer_complete: pipe=3D0xbafa0780 xfer=3D0xbacb9ec0 status=3D0 =
 actlen=3D4
 usb_freemem: frag=3D0xc90acd80
 usb_transfer_complete: repeat=3D0 new head=3D0x0
 dwc2_device_ctrl_done: xfer=3D0xbacb9ec0
 usbd_start_next: pipe=3D0xbafa0780, xfer=3D0x0
 usbd_free_xfer: 0xbacb9ec0
 usbd_alloc_xfer() =3D 0xbacb9ec0
 usbd_transfer: xfer=3D0xbacb9ec0, flags=3D0x2, pipe=3D0xbafa0780, =
 running=3D0
 usbd_dump_queue: pipe=3D0xbafa0780
 usb_allocmem: use frag=3D0xc90acd80 size=3D4
 dwc2_device_ctrl_transfer:=20
 usb_insert_transfer: pipe=3D0xbafa0780 running=3D0 timeout=3D5000
 dwc2_device_ctrl_start:=20
 dwc2_device_start: xfer=3D0xbacb9ec0 pipe=3D0xbafa0780
 dwctwo0: urb=3D0xb86e2648, xfer=3D0x0
 usb_schedsoftintr: polling=3D0
 usb_transfer_complete: pipe=3D0xbafa0780 xfer=3D0xbacb9ec0 status=3D0 =
 actlen=3D4
 usb_freemem: frag=3D0xc90acd80
 usb_transfer_complete: repeat=3D0 new head=3D0x0
 dwc2_device_ctrl_done: xfer=3D0xbacb9ec0
 usbd_start_next: pipe=3D0xbafa0780, xfer=3D0x0
 usbd_free_xfer: 0xbacb9ec0
 usbd_alloc_xfer() =3D 0xbacb9ec0
 usbd_transfer: xfer=3D0xbacb9ec0, flags=3D0x2, pipe=3D0xbafa0780, =
 running=3D0
 usbd_dump_queue: pipe=3D0xbafa0780
 usb_allocmem: use frag=3D0xc90acd80 size=3D4
 dwc2_device_ctrl_transfer:=20
 usb_insert_transfer: pipe=3D0xbafa0780 running=3D0 timeout=3D5000
 dwc2_device_ctrl_start:=20
 dwc2_device_start: xfer=3D0xbacb9ec0 pipe=3D0xbafa0780
 dwctwo0: urb=3D0xb86e2648, xfer=3D0x0
 usb_schedsoftintr: polling=3D0
 usb_transfer_complete: pipe=3D0xbafa0780 xfer=3D0xbacb9ec0 status=3D0 =
 actlen=3D4
 usb_freemem: frag=3D0xc90acd80
 usb_transfer_complete: repeat=3D0 new head=3D0x0
 dwc2_device_ctrl_done: xfer=3D0xbacb9ec0
 usbd_start_next: pipe=3D0xbafa0780, xfer=3D0x0
 usbd_free_xfer: 0xbacb9ec0
 usbd_alloc_xfer() =3D 0xbacb9ec0
 usbd_transfer: xfer=3D0xbacb9ec0, flags=3D0x2, pipe=3D0xbafa0780, =
 running=3D0
 usbd_dump_queue: pipe=3D0xbafa0780
 usb_allocmem: use frag=3D0xc90acd80 size=3D4
 dwc2_device_ctrl_transfer:=20
 usb_insert_transfer: pipe=3D0xbafa0780 running=3D0 timeout=3D5000
 dwc2_device_ctrl_start:=20
 dwc2_device_start: xfer=3D0xbacb9ec0 pipe=3D0xbafa0780
 dwctwo0: urb=3D0xb86e2648, xfer=3D0x0
 usb_schedsoftintr: polling=3D0
 usb_transfer_complete: pipe=3D0xbafa0780 xfer=3D0xbacb9ec0 status=3D0 =
 actlen=3D4
 usb_freemem: frag=3D0xc90acd80
 usb_transfer_complete: repeat=3D0 new head=3D0x0
 dwc2_device_ctrl_done: xfer=3D0xbacb9ec0
 usbd_start_next: pipe=3D0xbafa0780, xfer=3D0x0
 usbd_free_xfer: 0xbacb9ec0
 usbd_alloc_xfer() =3D 0xbacb9ec0
 usbd_transfer: xfer=3D0xbacb9ec0, flags=3D0x2, pipe=3D0xbafa0780, =
 running=3D0
 usbd_dump_queue: pipe=3D0xbafa0780
 usb_allocmem: use frag=3D0xc90acd80 size=3D4
 dwc2_device_ctrl_transfer:=20
 usb_insert_transfer: pipe=3D0xbafa0780 running=3D0 timeout=3D5000
 dwc2_device_ctrl_start:=20
 dwc2_device_start: xfer=3D0xbacb9ec0 pipe=3D0xbafa0780
 dwctwo0: urb=3D0xb86e2648, xfer=3D0x0
 usb_schedsoftintr: polling=3D0
 usb_transfer_complete: pipe=3D0xbafa0780 xfer=3D0xbacb9ec0 status=3D0 =
 actlen=3D4
 usb_freemem: frag=3D0xc90acd80
 usb_transfer_complete: repeat=3D0 new head=3D0x0
 dwc2_device_ctrl_done: xfer=3D0xbacb9ec0
 usbd_start_next: pipe=3D0xbafa0780, xfer=3D0x0
 usbd_free_xfer: 0xbacb9ec0
 usbd_alloc_xfer() =3D 0xbacb9ec0
 usbd_transfer: xfer=3D0xbacb9ec0, flags=3D0x2, pipe=3D0xbafa0780, =
 running=3D0
 usbd_dump_queue: pipe=3D0xbafa0780
 usb_allocmem: use frag=3D0xc90acd80 size=3D4
 dwc2_device_ctrl_transfer:=20
 usb_insert_transfer: pipe=3D0xbafa0780 running=3D0 timeout=3D5000
 dwc2_device_ctrl_start:=20
 dwc2_device_start: xfer=3D0xbacb9ec0 pipe=3D0xbafa0780
 dwctwo0: urb=3D0xb86e2648, xfer=3D0x0
 usb_schedsoftintr: polling=3D0
 usb_transfer_complete: pipe=3D0xbafa0780 xfer=3D0xbacb9ec0 status=3D0 =
 actlen=3D4
 usb_freemem: frag=3D0xc90acd80
 usb_transfer_complete: repeat=3D0 new head=3D0x0
 dwc2_device_ctrl_done: xfer=3D0xbacb9ec0
 usbd_start_next: pipe=3D0xbafa0780, xfer=3D0x0
 usbd_free_xfer: 0xbacb9ec0
 usbd_alloc_xfer() =3D 0xbacb9ec0
 usbd_transfer: xfer=3D0xbacb9ec0, flags=3D0x2, pipe=3D0xbafa0780, =
 running=3D0
 usbd_dump_queue: pipe=3D0xbafa0780
 usb_allocmem: use frag=3D0xc90acd80 size=3D4
 dwc2_device_ctrl_transfer:=20
 usb_insert_transfer: pipe=3D0xbafa0780 running=3D0 timeout=3D5000
 dwc2_device_ctrl_start:=20
 dwc2_device_start: xfer=3D0xbacb9ec0 pipe=3D0xbafa0780
 dwctwo0: urb=3D0xb86e2648, xfer=3D0x0
 usb_schedsoftintr: polling=3D0
 usb_transfer_complete: pipe=3D0xbafa0780 xfer=3D0xbacb9ec0 status=3D0 =
 actlen=3D4
 usb_freemem: frag=3D0xc90acd80
 usb_transfer_complete: repeat=3D0 new head=3D0x0
 dwc2_device_ctrl_done: xfer=3D0xbacb9ec0
 usbd_start_next: pipe=3D0xbafa0780, xfer=3D0x0
 usbd_free_xfer: 0xbacb9ec0
 usbd_alloc_xfer() =3D 0xbacb9ec0
 usbd_transfer: xfer=3D0xbacb9ec0, flags=3D0x2, pipe=3D0xbafa0780, =
 running=3D0
 usbd_dump_queue: pipe=3D0xbafa0780
 usb_allocmem: use frag=3D0xc90acd80 size=3D4
 dwc2_device_ctrl_transfer:=20
 usb_insert_transfer: pipe=3D0xbafa0780 running=3D0 timeout=3D5000
 dwc2_device_ctrl_start:=20
 dwc2_device_start: xfer=3D0xbacb9ec0 pipe=3D0xbafa0780
 dwctwo0: urb=3D0xb86e2648, xfer=3D0x0
 usb_schedsoftintr: polling=3D0
 usb_transfer_complete: pipe=3D0xbafa0780 xfer=3D0xbacb9ec0 status=3D0 =
 actlen=3D4
 usb_freemem: frag=3D0xc90acd80
 usb_transfer_complete: repeat=3D0 new head=3D0x0
 dwc2_device_ctrl_done: xfer=3D0xbacb9ec0
 usbd_start_next: pipe=3D0xbafa0780, xfer=3D0x0
 usbd_free_xfer: 0xbacb9ec0
 usbd_alloc_xfer() =3D 0xbacb9ec0
 usbd_transfer: xfer=3D0xbacb9ec0, flags=3D0x2, pipe=3D0xbafa0780, =
 running=3D0
 usbd_dump_queue: pipe=3D0xbafa0780
 usb_allocmem: use frag=3D0xc90acd80 size=3D4
 dwc2_device_ctrl_transfer:=20
 usb_insert_transfer: pipe=3D0xbafa0780 running=3D0 timeout=3D5000
 dwc2_device_ctrl_start:=20
 dwc2_device_start: xfer=3D0xbacb9ec0 pipe=3D0xbafa0780
 dwctwo0: urb=3D0xb86e2648, xfer=3D0x0
 usb_schedsoftintr: polling=3D0
 usb_transfer_complete: pipe=3D0xbafa0780 xfer=3D0xbacb9ec0 status=3D0 =
 actlen=3D4
 usb_freemem: frag=3D0xc90acd80
 usb_transfer_complete: repeat=3D0 new head=3D0x0
 dwc2_device_ctrl_done: xfer=3D0xbacb9ec0
 usbd_start_next: pipe=3D0xbafa0780, xfer=3D0x0
 usbd_free_xfer: 0xbacb9ec0
 usbd_alloc_xfer() =3D 0xbacb9ec0
 usbd_transfer: xfer=3D0xbacb9ec0, flags=3D0x2, pipe=3D0xbafa0780, =
 running=3D0
 usbd_dump_queue: pipe=3D0xbafa0780
 usb_allocmem: use frag=3D0xc90acd80 size=3D4
 dwc2_device_ctrl_transfer:=20
 usb_insert_transfer: pipe=3D0xbafa0780 running=3D0 timeout=3D5000
 dwc2_device_ctrl_start:=20
 dwc2_device_start: xfer=3D0xbacb9ec0 pipe=3D0xbafa0780
 dwctwo0: urb=3D0xb86e2648, xfer=3D0x0
 usb_schedsoftintr: polling=3D0
 usb_transfer_complete: pipe=3D0xbafa0780 xfer=3D0xbacb9ec0 status=3D0 =
 actlen=3D4
 usb_freemem: frag=3D0xc90acd80
 usb_transfer_complete: repeat=3D0 new head=3D0x0
 dwc2_device_ctrl_done: xfer=3D0xbacb9ec0
 usbd_start_next: pipe=3D0xbafa0780, xfer=3D0x0
 usbd_free_xfer: 0xbacb9ec0
 usbd_alloc_xfer() =3D 0xbacb9ec0
 usbd_transfer: xfer=3D0xbacb9ec0, flags=3D0x2, pipe=3D0xbafa0780, =
 running=3D0
 usbd_dump_queue: pipe=3D0xbafa0780
 usb_allocmem: use frag=3D0xc90acd80 size=3D4
 dwc2_device_ctrl_transfer:=20
 usb_insert_transfer: pipe=3D0xbafa0780 running=3D0 timeout=3D5000
 dwc2_device_ctrl_start:=20
 dwc2_device_start: xfer=3D0xbacb9ec0 pipe=3D0xbafa0780
 dwctwo0: urb=3D0xb86e2648, xfer=3D0x0
 usb_schedsoftintr: polling=3D0
 usb_transfer_complete: pipe=3D0xbafa0780 xfer=3D0xbacb9ec0 status=3D0 =
 actlen=3D4
 usb_freemem: frag=3D0xc90acd80
 usb_transfer_complete: repeat=3D0 new head=3D0x0
 dwc2_device_ctrl_done: xfer=3D0xbacb9ec0
 usbd_start_next: pipe=3D0xbafa0780, xfer=3D0x0
 usbd_free_xfer: 0xbacb9ec0
 usbd_alloc_xfer() =3D 0xbacb9ec0
 usbd_transfer: xfer=3D0xbacb9ec0, flags=3D0x2, pipe=3D0xbafa0780, =
 running=3D0
 usbd_dump_queue: pipe=3D0xbafa0780
 usb_allocmem: use frag=3D0xc90acd80 size=3D4
 dwc2_device_ctrl_transfer:=20
 usb_insert_transfer: pipe=3D0xbafa0780 running=3D0 timeout=3D5000
 dwc2_device_ctrl_start:=20
 dwc2_device_start: xfer=3D0xbacb9ec0 pipe=3D0xbafa0780
 dwctwo0: urb=3D0xb86e2648, xfer=3D0x0
 usb_schedsoftintr: polling=3D0
 usb_transfer_complete: pipe=3D0xbafa0780 xfer=3D0xbacb9ec0 status=3D0 =
 actlen=3D4
 usb_freemem: frag=3D0xc90acd80
 usb_transfer_complete: repeat=3D0 new head=3D0x0
 dwc2_device_ctrl_done: xfer=3D0xbacb9ec0
 usbd_start_next: pipe=3D0xbafa0780, xfer=3D0x0
 usbd_free_xfer: 0xbacb9ec0
 usbd_alloc_xfer() =3D 0xbacb9ec0
 usbd_transfer: xfer=3D0xbacb9ec0, flags=3D0x2, pipe=3D0xbafa0780, =
 running=3D0
 usbd_dump_queue: pipe=3D0xbafa0780
 usb_allocmem: use frag=3D0xc90acd80 size=3D4
 dwc2_device_ctrl_transfer:=20
 usb_insert_transfer: pipe=3D0xbafa0780 running=3D0 timeout=3D5000
 dwc2_device_ctrl_start:=20
 dwc2_device_start: xfer=3D0xbacb9ec0 pipe=3D0xbafa0780
 dwctwo0: urb=3D0xb86e2648, xfer=3D0x0
 usb_schedsoftintr: polling=3D0
 usb_transfer_complete: pipe=3D0xbafa0780 xfer=3D0xbacb9ec0 status=3D0 =
 actlen=3D4
 usb_freemem: frag=3D0xc90acd80
 usb_transfer_complete: repeat=3D0 new head=3D0x0
 dwc2_device_ctrl_done: xfer=3D0xbacb9ec0
 usbd_start_next: pipe=3D0xbafa0780, xfer=3D0x0
 usbd_free_xfer: 0xbacb9ec0
 usbd_transfer: xfer=3D0xbacb9a40, flags=3D0x9, pipe=3D0xbafa05c0, =
 running=3D0
 usbd_dump_queue: pipe=3D0xbafa05c0
 dwc2_device_bulk_transfer: xfer=3D0xbacb9a40
 usb_insert_transfer: pipe=3D0xbafa05c0 running=3D0 timeout=3D10000
 dwc2_device_bulk_start: xfer=3D0xbacb9a40
 dwc2_device_start: xfer=3D0xbacb9a40 pipe=3D0xbafa05c0
 dwctwo0: urb=3D0xbad7a908, xfer=3D0x0
 usbd_alloc_xfer() =3D 0xbacb9980
 usbd_transfer: xfer=3D0xbacb9980, flags=3D0x2, pipe=3D0xbafa0780, =
 running=3D0
 usbd_dump_queue: pipe=3D0xbafa0780
 usb_allocmem: use frag=3D0xc90acd80 size=3D4
 dwc2_device_ctrl_transfer:=20
 usb_insert_transfer: pipe=3D0xbafa0780 running=3D0 timeout=3D5000
 dwc2_device_ctrl_start:=20
 dwc2_device_start: xfer=3D0xbacb9980 pipe=3D0xbafa0780
 dwctwo0: urb=3D0xb5f6bb88, xfer=3D0x0
 usb_schedsoftintr: polling=3D0
 usb_transfer_complete: pipe=3D0xbafa05c0 xfer=3D0xbacb9a40 status=3D0 =
 actlen=3D142
 usb_schedsoftintr: polling=3D0
 usb_transfer_complete: repeat=3D0 new head=3D0x0
 dwc2_device_bulk_done: xfer=3D0xbacb9a40
 usbd_start_next: pipe=3D0xbafa05c0, xfer=3D0x0
 usb_transfer_complete: pipe=3D0xbafa0780 xfer=3D0xbacb9980 status=3D0 =
 actlen=3D4
 usb_freemem: frag=3D0xc90acd80
 usb_transfer_complete: repeat=3D0 new head=3D0x0
 dwc2_device_ctrl_done: xfer=3D0xbacb9980
 usbd_start_next: pipe=3D0xbafa0780, xfer=3D0x0
 usbd_free_xfer: 0xbacb9980
 usbd_alloc_xfer() =3D 0xbacb9980
 usbd_transfer: xfer=3D0xbacb9980, flags=3D0x2, pipe=3D0xbafa0780, =
 running=3D0
 usbd_dump_queue: pipe=3D0xbafa0780
 usb_allocmem: use frag=3D0xc90acd80 size=3D4
 dwc2_device_ctrl_transfer:=20
 usb_insert_transfer: pipe=3D0xbafa0780 running=3D0 timeout=3D5000
 dwc2_device_ctrl_start:=20
 dwc2_device_start: xfer=3D0xbacb9980 pipe=3D0xbafa0780
 dwctwo0: urb=3D0xb5f6bb88, xfer=3D0x0
 usb_schedsoftintr: polling=3D0
 usb_transfer_complete: pipe=3D0xbafa0780 xfer=3D0xbacb9980 status=3D0 =
 actlen=3D4
 usb_freemem: frag=3D0xc90acd80
 usb_transfer_complete: repeat=3D0 new head=3D0x0
 dwc2_device_ctrl_done: xfer=3D0xbacb9980
 usbd_start_next: pipe=3D0xbafa0780, xfer=3D0x0
 usbd_free_xfer: 0xbacb9980
 usbd_alloc_xfer() =3D 0xbacb9980
 usbd_transfer: xfer=3D0xbacb9980, flags=3D0x2, pipe=3D0xbafa0780, =
 running=3D0
 usbd_dump_queue: pipe=3D0xbafa0780
 usb_allocmem: use frag=3D0xc90acd80 size=3D4
 dwc2_device_ctrl_transfer:=20
 usb_insert_transfer: pipe=3D0xbafa0780 running=3D0 timeout=3D5000
 dwc2_device_ctrl_start:=20
 dwc2_device_start: xfer=3D0xbacb9980 pipe=3D0xbafa0780
 dwctwo0: urb=3D0xb5f6bb88, xfer=3D0x0
 usb_schedsoftintr: polling=3D0
 usb_schedsoftintr: polling=3D0
 usb_transfer_complete: pipe=3D0xbafa0630 xfer=3D0xbacb9b00 status=3D0 =
 actlen=3D76
 usb_transfer_complete: repeat=3D0 new head=3D0x0
 dwc2_device_bulk_done: xfer=3D0xbacb9b00
 usbd_transfer: xfer=3D0xbacb9b00, flags=3D0x5, pipe=3D0xbafa0630, =
 running=3D1
 usbd_dump_queue: pipe=3D0xbafa0630
 dwc2_device_bulk_transfer: xfer=3D0xbacb9b00
 usb_insert_transfer: pipe=3D0xbafa0630 running=3D1 timeout=3D0
 usbd_start_next: pipe=3D0xbafa0630, xfer=3D0xbacb9b00
 dwc2_device_bulk_start: xfer=3D0xbacb9b00
 dwc2_device_start: xfer=3D0xbacb9b00 pipe=3D0xbafa0630
 dwctwo0: urb=3D0xbad7aa88, xfer=3D0x0
 usb_transfer_complete: pipe=3D0xbafa0780 xfer=3D0xbacb9980 status=3D0 =
 actlen=3D4
 usb_freemem: frag=3D0xc90acd80
 usb_transfer_complete: repeat=3D0 new head=3D0x0
 dwc2_device_ctrl_done: xfer=3D0xbacb9980
 usbd_start_next: pipe=3D0xbafa0780, xfer=3D0x0
 usbd_free_xfer: 0xbacb9980
 usbd_transfer: xfer=3D0xbacb9a40, flags=3D0x9, pipe=3D0xbafa05c0, =
 running=3D0
 usbd_dump_queue: pipe=3D0xbafa05c0
 dwc2_device_bulk_transfer: xfer=3D0xbacb9a40
 usb_insert_transfer: pipe=3D0xbafa05c0 running=3D0 timeout=3D10000
 dwc2_device_bulk_start: xfer=3D0xbacb9a40
 dwc2_device_start: xfer=3D0xbacb9a40 pipe=3D0xbafa05c0
 dwctwo0: urb=3D0xbad7a908, xfer=3D0x0
 usbd_alloc_xfer() =3D 0xbacb9980
 usbd_transfer: xfer=3D0xbacb9980, flags=3D0x2, pipe=3D0xbafa0780, =
 running=3D0
 usbd_dump_queue: pipe=3D0xbafa0780
 usb_allocmem: use frag=3D0xc90acd80 size=3D4
 dwc2_device_ctrl_transfer:=20
 usb_insert_transfer: pipe=3D0xbafa0780 running=3D0 timeout=3D5000
 dwc2_device_ctrl_start:=20
 dwc2_device_start: xfer=3D0xbacb9980 pipe=3D0xbafa0780
 dwctwo0: urb=3D0xb5f6bb88, xfer=3D0x0
 usb_schedsoftintr: polling=3D0
 usb_schedsoftintr: polling=3D0
 usb_schedsoftintr: polling=3D0

 mipi#=20
 mipi#=20
 mipi#=20
 mipi# Stopped in pid 0.2 (system) at  netbsd:cpu_Debugger+0x4:        bx =
      r14
 db{0}> ps
 PID    LID S CPU     FLAGS       STRUCT LWP *               NAME WAIT
 230      1 3   0         0           bacfab60            cleanup tstile
 232      1 3   0        80           ba46b140              sleep nanoslp
 963      1 3   0        80           baba88e0                 sh wait
 146      1 3   0     40080           baba8ba0                 sh wait
 98       1 3   0        80           b9686100                 sh wait
 105      1 3   3        80           b96863c0                 su wait
 2020     1 3   1        80           b9687700             pickup select
 2107     1 3   3        80           bacfae20                 sh wait
 2583     1 3   3         0           ba46a0c0               sshd tstile
 2623     1 3   0        80           ba16ebe0               sshd select
 2173     1 3   1        80           baba8620                 sh ttyraw
 2526     1 3   1        80           bacc1c00              login wait
 2030     1 3   1        80           b7ef2ee0               cron nanoslp
 1997     1 3   3        80           b7ef31a0              inetd kqueue
 2155     1 3   1         0           b7ef3720              mdnsd usbxfer
 2035     1 3   1        80           b9687440               qmgr kqueue
 1941     1 3   1        80           b7ef3460             master kqueue
 1818     1 3   0        80           ba46b6c0               sshd select
 1647     1 2   2   1000000           b96879c0               ntpd
 1334     1 3   1        80           baba8360            devpubd devmon
 613      1 3   3        80           ba46bc40             dhcpcd select
 1        1 3   1        80           bacc1100               init wait
 0       64 3   3       200           bacc0e40            physiod physiod
 0       63 3   1       200           baba9960           aiodoned =
 aiodoned
 0       62 3   1       200           baba9c20            ioflush syncer
 0       61 3   2       200           bacfa320           pgdaemon =
 pgdaemon
 0       60 3   2       280           bacc0080          VCHIQka-0 =
 lnxcmplt
 0       59 3   2       280           bacc0340            vcaudio data
 0       58 3   2       280           bacc0600           VCHIQs-0 semacv
 0       57 3   0       280           bacc08c0           VCHIQr-0 semacv
 0       56 3   2       280           bacc0b80            VCHIQ-0 semacv
 0       53 3   2       200           bacfa060               usb0 usbevt
 0       51 3   2       200           bacfa5e0              unpgc unpgc
 0       50 3   3       200           bacc1940        vmem_rehash =
 vmem_rehash
 0       49 3   1       200           bacc13c0             sdmmc0 =
 mmctaskq
 0       48 3   3       200           bacc1680            vcmbox0 vcmbox0
 0       39 3   3       200           bacfb0e0         usbtask-dr usbtsk
 0       38 3   0       200           bacfb3a0         usbtask-hc usbtsk
 0       37 3   0       200           bacfb660               dwc2 dwc2
 0       36 3   3       200           bacfb920               iic1 iicintr
 0       35 3   1       200           bacfbbe0               iic0 iicintr
 0       34 3   0       200           bada4040             sysmon smtaskq
 0       33 3   3       200           bada4300            xcall/3 xcall
 0       32 1   3       200           bada45c0          softser/3
 0       31 3   3       200           bada4880          softclk/3 tstile
 0       30 1   3       200           bada4b40          softbio/3
 0       29 1   3       200           bada4e00          softnet/3
 0    >  28 7   3       201           bada50c0             idle/3
 0       27 3   2       200           bada5380            xcall/2 xcall
 0       26 1   2       200           bada5640          softser/2
 0       25 1   2       200           bada5900          softclk/2
 0       24 1   2       200           bada5bc0          softbio/2
 0       23 1   2       200           badd4020          softnet/2
 0    >  22 7   2       201           badd42e0             idle/2
 0       21 3   1       200           badd45a0            xcall/1 xcall
 0       20 1   1       200           badd4860          softser/1
 0       19 1   1       200           badd4b20          softclk/1
 0       18 1   1       200           badd4de0          softbio/1
 0       17 1   1       200           badd50a0          softnet/1
 0    >  16 7   1       201           badd5360             idle/1
 0       15 3   2       200           badd5620         pmfsuspend =
 pmfsuspend
 0       14 3   1       200           badd58e0           pmfevent =
 pmfevent
 0       13 3   0       200           badd5ba0         sopendfree =
 sopendfr
 0       12 3   2       200           baf04000           nfssilly =
 nfssilly
 0       11 3   3       200           baf042c0            cachegc cachegc
 0       10 3   3       200           baf04580              vrele vrele
 0        9 3   2       200           baf04840             vdrain vdrain
 0        8 3   0       200           baf04b00          modunload =
 mod_unld
 0        7 3   0       200           baf04dc0            xcall/0 xcall
 0        6 1   0       200           baf05080          softser/0
 0        5 3   0       200           baf05340          softclk/0 tstile
 0        4 1   0       200           baf05600          softbio/0
 0        3 3   0       200           baf058c0          softnet/0 tstile
 0    >   2 7   0       201           baf05b80             idle/0
 0        1 3   3       200           805718c0            swapper uvm
 db{0}> bt/t 0t2155
 trace: pid 2155 lid 1 at 0xb7d9bb1c
 0xb7d9bb1c: netbsd:mi_switch+0x10
 0xb7d9bb4c: netbsd:sleepq_block+0xb4
 0xb7d9bb7c: netbsd:cv_wait+0x104
 0xb7d9bbac: netbsd:usbd_transfer+0x23c
 0xb7d9bbfc: netbsd:usbd_do_request_flags_pipe+0xdc
 0xb7d9bc24: netbsd:usbd_do_request+0x38
 0xb7d9bc54: netbsd:smsc_write_reg+0x60
 0xb7d9bc7c: netbsd:smsc_setmulti+0x100
 0xb7d9bcac: netbsd:smsc_ioctl+0x124
 0xb7d9bd54: netbsd:if_mcast_op+0x50
 0xb7d9bda4: netbsd:in6_delmulti+0x154
 0xb7d9bdbc: netbsd:in6_leavegroup+0x20
 0xb7d9bdd4: netbsd:ip6_freemoptions+0x3c
 0xb7d9bdf4: netbsd:in6_pcbdetach+0xc8
 0xb7d9be14: netbsd:udp6_detach_wrapper+0x4c
 0xb7d9be3c: netbsd:soclose+0x7c
 0xb7d9be54: netbsd:soo_close+0x20
 0xb7d9be94: netbsd:closef+0x6c
 0xb7d9bef4: netbsd:fd_close+0x180
 0xb7d9bf0c: netbsd:sys_close+0x2c
 0xb7d9bf7c: netbsd:syscall+0x88
 0xb7d9bfac: netbsd:swi_handler+0x98
 db{0}> call usbd_dump_queue(0xbafa0780)
 usbd_dump_queue: pipe=3D0xbafa0780
   xfer=3D0xbacb9980
 7
 db{0}> callouts
 No such command: callouts
 db{0}> callout
 hardclock_ticks now: 44537
     ticks  wheel               arg  func
     -4591 -1/-256                0  if_slowtimo
     -4591 -1/-256                0  nd6_timer
     -4690 -1/-256         bad7680c  vcons_intr
     -4682 -1/-256                0  rt_timer_timer
     -4678 -1/-256                0  sched_balance
     -4663 -1/-256         bac3d008  smsc_tick
     -4506 -1/-256         ba46b140  sleepq_timeout
     -2521 -1/-256         baf9c148  sme_events_check
       100 -1/-256         baf04840  sleepq_timeout
     -4634 -1/-256         805718c0  sleepq_timeout
     -4632 -1/-256         bacfb920  sleepq_timeout
     -4606 -1/-256         baf04580  sleepq_timeout
     -4556 -1/-256         baf042c0  sleepq_timeout
     -3863 -1/-256                0  vmem_rehash_all_kick
        22  0/48           b9e23ef0  realtimerexpire
        48  0/74           bacfbbe0  sleepq_timeout
        15  0/74                  0  tcp_slowtimo
        20  0/79                  0  pfslowtimo
        20  0/79                  0  pffasttimo
        72  0/98           baba9c20  sleepq_timeout
     21624  1/260                 0  arptimer
     24560  1/272          b9687440  sleepq_timeout
     27860  1/284          b9e23d90  realtimerexpire
     31875  1/300          b9e23e40  realtimerexpire
      1231  1/351          bacfa060  sleepq_timeout
       875  1/435          b7ef2ee0  sleepq_timeout
      4575  1/449          b7ef3460  sleepq_timeout
    141381  2/514          ba46bc40  sleepq_timeout
    315477  2/517                 0  nd6_slowtimo
    356174  2/518          b9687700  sleepq_timeout
    592558  2/521          b9e23ce0  realtimerexpire
    715004  2/523          ba7958c0  tcp_timer_keep
   8540577  2/642                 0  in6_tmpaddrtimer
   8605062  2/643          ba807158  nd6_llinfo_timer
 db{0}> show all cpus
 No such command: cpus
 db{0}> help
 b               delete          match           search          w
 break           dmesg           next            set             watch
 bt              dwatch          p               show            whatis
 c               examine         print           sifting         write
 call            exit            ps              step            x
 callout         help            quit            sync
 continue        kill            reboot          trace
 d               machine         s               until
 db{0}> x/i softint_trigger,10
 netbsd:softint_trigger: mrc     p15, 0, r3, c13, c0, 4
 netbsd:softint_trigger+0x4:     ldr     r2, [r3, #0x184]
 netbsd:softint_trigger+0x8:     orr     r0, r0, r2
 netbsd:softint_trigger+0xc:     str     r0, [r3, #0x184]
 netbsd:softint_trigger+0x10:    bx      r14
 netbsd:softint_init_md: mov     r12, r13
 netbsd:softint_init_md+0x4:     push    {r4-r8, r11-r12, r14-r15}
 netbsd:softint_init_md+0x8:     sub     r11, r12, #0x00000004
 netbsd:softint_init_md+0xc:     sub     r13, r13, #0x0000000c
 netbsd:softint_init_md+0x10:    mov     r5, r0
 netbsd:softint_init_md+0x14:    mov     r4, r1
 netbsd:softint_init_md+0x18:    mov     r6, r1, lsl #2
 netbsd:softint_init_md+0x1c:    mov     r8, r2
 netbsd:softint_init_md+0x20:    ldr     r7, [r0, #0x00c]
 netbsd:softint_init_md+0x24:    add     r7, r7, r6
 netbsd:softint_init_md+0x28:    ldr     r3, [r7, #0x174]
 db{0}> ps/t 0t230
 usage: show all procs [/a] [/l] [/n] [/w]
         /a =3D=3D show process address info
         /l =3D=3D show LWP info [default]
         /n =3D=3D show normal process info
         /w =3D=3D show process wait/emul info
 db{0}> bt/t 0t230
 trace: pid 230 lid 1 at 0xbaccdd4c
 0xbaccdd4c: netbsd:mi_switch+0x10
 0xbaccdd7c: netbsd:sleepq_block+0xb4
 0xbaccddbc: netbsd:turnstile_block+0x3e8
 0xbaccde1c: netbsd:mutex_enter+0x220
 0xbaccde3c: netbsd:sosetlock+0x58
 0xbaccde6c: netbsd:tcp_attach_wrapper+0x30
 0xbaccde9c: netbsd:socreate+0x158
 0xbaccdee4: netbsd:fsocreate+0xac
 0xbaccdf0c: netbsd:sys___socket30+0x30
 0xbaccdf7c: netbsd:syscall+0x88
 0xbaccdfac: netbsd:swi_handler+0x98
 db{0}> bt/a bacfa060
 trace: pid 0 lid 53 at 0xbaccbf1c
 0xbaccbf1c: netbsd:mi_switch+0x10
 0xbaccbf4c: netbsd:sleepq_block+0x16c
 0xbaccbf84: netbsd:cv_timedwait+0x108
 0xbaccbfac: netbsd:usb_event_thread+0xf0
 db{0}>=20

From: Nick Hudson <nick.hudson@gmx.co.uk>
To: gnats-bugs@NetBSD.org, gnats-admin@netbsd.org, netbsd-bugs@netbsd.org,
 mfpnb@plass-family.net
Cc: 
Subject: Re: kern/50491: unkillable wait in usbd_transfer while using usmsc0
 on raspberry pi 2
Date: Thu, 3 Dec 2015 07:32:03 +0000

 On 12/3/2015 5:30 AM, Michael Plass wrote:
 > The following reply was made to PR kern/50491; it has been noted by GNATS.
 >
 > From: Michael Plass <mfpnb@plass-family.net>
 > To: gnats-bugs@NetBSD.org
 > Cc: Michael Plass <mfpnb@plass-family.net>
 > Subject: Re: kern/50491: unkillable wait in usbd_transfer while using usmsc0 on raspberry pi 2
 > Date: Wed, 2 Dec 2015 21:26:11 -0800
 >
 >   Nick,
 >   
 >   I saw one of the 'usbd_do_request: not in process context' messages go by
 >   (actually while still coming up to multiuser mode), but apparently DEBUG was
 >   not defined, so the ASSERT_SLEEPABLE() was a NOP. I've rebuilt with a call to
 >   assert_sleepable() instead, and I'll run with that.
 Oops. Any reason to not define DEBUG? assert_sleepable should do, but 
 they more checks the better.




 >   PID    LID S CPU     FLAGS       STRUCT LWP *               NAME WAIT
 >   230      1 3   0         0           bacfab60            cleanup tstile


 >   2583     1 3   3         0           ba46a0c0               sshd tstile

 >   0       31 3   3       200           bada4880          softclk/3 tstile


 >   0        5 3   0       200           baf05340          softclk/0 tstile

 >   0        3 3   0       200           baf058c0          softnet/0 tstile


 Backtraces from these might help, but see below...

 >   db{0}> bt/t 0t230
 >   trace: pid 230 lid 1 at 0xbaccdd4c
 >   0xbaccdd4c: netbsd:mi_switch+0x10
 >   0xbaccdd7c: netbsd:sleepq_block+0xb4
 >   0xbaccddbc: netbsd:turnstile_block+0x3e8
 >   0xbaccde1c: netbsd:mutex_enter+0x220
 >   0xbaccde3c: netbsd:sosetlock+0x58
 >   0xbaccde6c: netbsd:tcp_attach_wrapper+0x30
 >   0xbaccde9c: netbsd:socreate+0x158
 >   0xbaccdee4: netbsd:fsocreate+0xac
 >   0xbaccdf0c: netbsd:sys___socket30+0x30
 >   0xbaccdf7c: netbsd:syscall+0x88
 >   0xbaccdfac: netbsd:swi_handler+0x98

 Blocked on softnet_lock in sosetlock

 x/x softnet_lock should tell us who owns it. Get a backtrace from the 
 offending lwp.

 Nick

From: Michael Plass <mfpnb@plass-family.net>
To: gnats-bugs@NetBSD.org
Cc: 
Subject: Re: kern/50491: unkillable wait in usbd_transfer while using usmsc0 on raspberry pi 2
Date: Wed, 2 Dec 2015 22:13:41 -0800

 Nick,

 It didn't take long to hit it this time...

 - Michael

 Setting date via ntp.
 panic: assert_sleepable: softint caller=0x802e2014
 cpu2: Begin traceback...
 0xbada3c3c: netbsd:db_panic+0xc
 0xbada3c6c: netbsd:vpanic+0x1b0
 0xbada3c84: netbsd:snprintf
 0xbada3cbc: netbsd:assert_sleepable+0xb4
 0xbada3d0c: netbsd:usbd_do_request_flags_pipe+0x28
 0xbada3d34: netbsd:usbd_do_request+0x38
 0xbada3d64: netbsd:smsc_write_reg+0x60
 0xbada3d8c: netbsd:smsc_setmulti+0x100
 0xbada3dbc: netbsd:smsc_ioctl+0x124
 0xbada3e64: netbsd:if_mcast_op+0x50
 0xbada3eb4: netbsd:in6_delmulti+0x154
 0xbada3ecc: netbsd:in6_leavegroup+0x20
 0xbada3ef4: netbsd:in6_purgeaddr+0x6c
 0xbada3f2c: netbsd:nd6_timer+0x108
 0xbada3f64: netbsd:callout_softclock+0x194
 0xbada3fac: netbsd:softint_dispatch+0xd4
 Bad frame pointer: 0x805fbf54
 cpu2: End traceback...


From: Michael Plass <mfpnb@plass-family.net>
To: gnats-bugs@NetBSD.org
Cc: 
Subject: Re: kern/50491: unkillable wait in usbd_transfer while using usmsc0 on raspberry pi 2
Date: Thu, 3 Dec 2015 21:39:08 -0800

 Nick,

 I built with DEBUG, and it panics quite early.

 - Michael

 NetBSD/evbarm (rpi) booting ...
 [ Kernel symbol table missing! ]
 Loaded initial symtab at 0x804aaf88, strtab at 0x804efad8, # entries =
 17570
 Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, =
 2005,
     2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015
     The NetBSD Foundation, Inc.  All rights reserved.
 Copyright (c) 1982, 1986, 1989, 1991, 1993
     The Regents of the University of California.  All rights reserved.

 NetBSD 7.0 (RPI2_DEBUG) #0: Thu Dec  3 21:14:26 PST 2015
         =
 michael@home.plass-family.net:/home/michael/NetBSD-7.0/build/usr/src/sys/a=
 rch/evbarm/compile/obj/RPI2_DEBUG
 total memory =3D 944 MB
 avail memory =3D 928 MB
 sysctl_createv: sysctl_create(machine_arch) returned 17
 kern.module.path=3D/stand/evbarm/7.0/modules
 mainbus0 (root)
 cpu0 at mainbus0 core 0: 600 MHz Cortex-A7 r0p5 (Cortex V7A core)
 cpu0: DC enabled IC enabled WB disabled EABT branch prediction enabled
 cpu0: 32KB/32B 2-way L1 VIPT Instruction cache
 cpu0: 32KB/64B 4-way write-back-locking-C L1 PIPT Data cache
 cpu0: 512KB/64B 8-way write-through L2 PIPT Unified cache
 vfp0 at cpu0: NEON MPE (VFP 3.0+), rounding, NaN propagation, denormals
 cpu1 at mainbus0 core 1
 cpu2 at mainbus0 core 2
 cpu3 at mainbus0 core 3
 obio0 at mainbus0
 bcmicu0 at obio0: Multiprocessor
 armgtmr0 at obio0: ARMv7 Generic 64-bit Timer (19200 kHz)
 armgtmr0: interrupting on irq 3
 bcmmbox0 at obio0: VC mailbox
 vcmbox0 at bcmmbox0
 vchiq0 at obio0 intr 194: BCM2835 VCHIQ
 bcmpm0 at obio0: Power management, Reset and Watchdog controller
 bcmdmac0 at obio0: DMA0 DMA2 DMA4 DMA5 DMA8 DMA9 DMA10
 bcmrng0 at obio0: RNG
 plcom0 at obio0 intr 185
 plcom0: txfifo disabled
 plcom0: console
 genfb0 at obio0
 wsdisplay0 at genfb0 kbdmux 1
 sdhc0 at obio0 intr 190: SDHC controller
 sdhc0: interrupting on intr 190
 dwctwo0 at obio0 intr 137: USB controller
 bcmspi0 at obio0 intr 182: SPI
 spi0 at bcmspi0: SPI bus
 bsciic0 at obio0 intr 181: BSC0
 iic0 at bsciic0: I2C bus
 bsciic1 at obio0 intr 181: BSC1
 iic1 at bsciic1: I2C bus
 bcmgpio0 at obio0: GPIO [0...31]
 gpio0 at bcmgpio0: 32 pins
 bcmgpio1 at obio0: GPIO [32...53]
 gpio1 at bcmgpio1: 22 pins
 usb0 at dwctwo0: USB revision 2.0
 cpu2: 600 MHz Cortex-A7 r0p5 (Cortex V7A core)
 cpu2: DC enabled IC enabled WB disabled EABT branch prediction enabled
 cpu2: 32KB/32B 2-way L1 VIPT Instruction cache
 cpu2: 32KB/64B 4-way write-back-locking-C L1 PIPT Data cache
 cpu2: 512KB/64B 8-way write-through L2 PIPT Unified cache
 vfp2 at cpu2: NEON MPE (VFP 3.0+), rounding, NaN propagation, denormals
 cpu3panic: :a s6s0e0r tM_Hszl eCeopratbelxe-:A 7i drl0ep 5c =
 a(lCloerrt=3De0xx 8V07)A3 7c1o8r4e
 =20
 cpu3: DC enabled IC enabled WB disabled EABT branch prediction enabled
 cpu3: 32KB/32B 2-way L1 VIPT Instruction cache
 cpu3: 32KB/64B 4-way write-back-lockinSgt-oCp pLe1d  PiInP Tp iDda t0a. =
 2c2a c(hsey
  tcepmu)3 :a t512KB/ 6n4eBt b8s-dw:acyp uw_rDietbeu-gtgherro+u0gxh4 :L 2 =
   P I PeT   Ubnxi f i e d   cra1c4h
 d
  bv{f2p}3>  at cpu3: NEON MPE (VFP 3.0+), rounding, NaN propagation, =
 denormals
 cpu1: 600 MHz Cortex-A7 r0p5 (Cortex V7A core)
 cpu1: DC enabled IC enabled WB disabled EABT branch prediction enabled
 cpu1: 32KB/32B 2-way L1 VIPT Instruction cache
 cpu1: 32KB/64B 4-way write-back-locking-C L1 PIPT Data cache
 cpu1: 512KB/64B 8-way write-through L2 PIPT Unified cache
 vfp1 at cpu1: NEON MPE (VFP 3.0+), rounding, NaN propagation, denormals

 db{2}> bt  =20
 0x8060be84: netbsd:vpanic+0xc
 0x8060be9c: netbsd:snprintf
 0x8060bed4: netbsd:assert_sleepable+0xb4
 0x8060bef4: netbsd:percpu_alloc+0x18
 0x8060bf2c: netbsd:pic_add+0xc4
 0x8060bf54: netbsd:bcm2836mp_intr_init+0x38
 0x8060bf6c: netbsd:bcm2836_cpu_hatch+0x14
 0x8060bf94: netbsd:cpu_hatch+0x1a4
 Bad frame pointer: 0x8060be34
 db{2}>=20

From: Nick Hudson <nick.hudson@gmx.co.uk>
To: gnats-bugs@NetBSD.org, skrll@NetBSD.org, gnats-admin@netbsd.org,
 netbsd-bugs@netbsd.org, mfpnb@plass-family.net
Cc: 
Subject: Re: kern/50491: unkillable wait in usbd_transfer while using usmsc0
 on raspberry pi 2
Date: Fri, 4 Dec 2015 07:15:59 +0000

 On 12/4/2015 7:00 AM, Michael Plass wrote:
 > The following reply was made to PR kern/50491; it has been noted by GNATS.
 >
 > From: Michael Plass <mfpnb@plass-family.net>
 > To: gnats-bugs@NetBSD.org
 > Cc:
 > Subject: Re: kern/50491: unkillable wait in usbd_transfer while using usmsc0 on raspberry pi 2
 > Date: Thu, 3 Dec 2015 21:39:08 -0800
 >
 >   Nick,
 >   
 >   I built with DEBUG, and it panics quite early.
 >

 >   db{2}> bt  =20
 >   0x8060be84: netbsd:vpanic+0xc
 >   0x8060be9c: netbsd:snprintf
 >   0x8060bed4: netbsd:assert_sleepable+0xb4
 >   0x8060bef4: netbsd:percpu_alloc+0x18
 >   0x8060bf2c: netbsd:pic_add+0xc4
 >   0x8060bf54: netbsd:bcm2836mp_intr_init+0x38
 >   0x8060bf6c: netbsd:bcm2836_cpu_hatch+0x14
 >   0x8060bf94: netbsd:cpu_hatch+0x1a4
 >   Bad frame pointer: 0x8060be34
 >   db{2}>=20
 >   
 >
 Apprarently I forgot to get this change pulled up

 http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/kern/kern_lock.c.diff?r1=1.155&r2=1.156

 I'll fix that.

 Nick

From: Michael Plass <mfpnb@plass-family.net>
To: gnats-bugs@NetBSD.org
Cc: Michael Plass <mfpnb@plass-family.net>
Subject: Re: kern/50491: unkillable wait in usbd_transfer while using usmsc0 on raspberry pi 2
Date: Fri, 4 Dec 2015 00:17:39 -0800

 On Dec 2, 2015, at 11:35 PM, Nick Hudson wrote:

 >> 
 >>  PID    LID S CPU     FLAGS       STRUCT LWP *               NAME WAIT
 >>  230      1 3   0         0           bacfab60            cleanup tstile
 > 
 > 
 >>  2583     1 3   3         0           ba46a0c0               sshd tstile
 > 
 >>  0       31 3   3       200           bada4880          softclk/3 tstile
 > 
 > 
 >>  0        5 3   0       200           baf05340          softclk/0 tstile
 > 
 >>  0        3 3   0       200           baf058c0          softnet/0 tstile
 > 
 > 
 > Backtraces from these might help, but see below...

 This time I have:
 db{0}> ps
 PID    LID S CPU     FLAGS       STRUCT LWP *               NAME WAIT
 4207     1 3   0        80           b7c643e0                 sh ttyout
 2014     1 3   0        80           bac1b6a0                 sh wait
 4858     1 3   0         0           b5a226c0              mdnsd tstile
 1156     1 3   0         0           b5a22980              mdnsd tstile
 1512     1 3   2         0           b90b2ec0              mdnsd tstile
 422      1 3   0         0           b9dbbc60              mdnsd tstile
 2891     1 3   0         0           bacfa060              mdnsd tstile
 4344     1 3   0         0           ba2bf6c0              mdnsd tstile
 930      1 3   0         0           b7c659e0              mdnsd tstile
 242      1 3   0         0           b7c651a0              mdnsd tstile
 2591     1 3   0         0           b7c64ee0              mdnsd tstile
 169      1 3   0         0           b7c64960              mdnsd tstile
 4268     1 3   0         0           b7c646a0              mdnsd tstile
 4054     1 3   1         0           b5a22f00              mdnsd tstile
 3260     1 3   0         0           b7c64c20              mdnsd tstile
 1160     1 3   0         0           b7c65460              mdnsd tstile
 3779     1 3   0         0           b7c64120              mdnsd usbxfer
 3643     1 3   3        80           b5a23a00               find ttyout
 2903     1 3   3        80           b9dbb420                 sh wait
 2702     1 3   1         0           b9dbaea0               sshd tstile
 706      1 3   1        80           b9dbb160               sshd select
 82       1 3   0        80           bac1b3e0                 sh wait
 80       1 3   0        80           bac1a8e0                 su wait
 71       1 3   0        80           b9dbb6e0                 sh wait
 70       1 3   0         0           b9dbb9a0               sshd tstile
 73       1 3   1        80           b9dba660               sshd select
 2667     1 3   3        80           bacfae20              getty ttyraw
 2559     1 3   2        80           b90b2100               cron nanoslp
 1517     1 3   0        80           b7c65720              inetd kqueue
 2196     1 3   1        80           b90b3700               qmgr kqueue
 2129     1 3   0        80           b9dba0e0             pickup kqueue
 2005     1 3   1        80           b7c65ca0             master kqueue
 1785     1 3   1        80           bac1a360               sshd select
 1725     1 3   3        80           b90b3c80               ntpd pause
 1662     1 3   0        80           ba2bf400            devpubd devmon
 740      1 3   1        80           bac1a620            syslogd kqueue
 613      1 3   3        80           ba2bfc40             dhcpcd select
 1        1 3   3        80           bacfa320               init wait
 0       64 3   1       200           bacfa8a0            physiod physiod
 0       63 3   1       280           bac1b960          VCHIQka-0 lnxcmplt
 0       62 3   0       200           bac1bc20           aiodoned aiodoned
 0       61 3   1       200           bacc0080            ioflush syncer
 0       60 3   1       200           bacc0340           pgdaemon pgdaemon
 0       59 3   1       280           bacc0600            vcaudio data
 0       58 3   1       280           bacc08c0           VCHIQs-0 semacv
 0       57 3   1       280           bacc0b80           VCHIQr-0 semacv
 0       56 3   1       280           bacc0e40            VCHIQ-0 semacv
 0       53 3   1       200           bacc1100               usb0 usbevt
 0       52 3   1       200           bacc1c00              unpgc unpgc
 0       50 3   1       200           bacc1940        vmem_rehash vmem_rehash
 0       49 3   2       200           bacc13c0             sdmmc0 mmctaskq
 0       48 3   0       200           bacc1680            vcmbox0 vcmbox0
 0       39 3   3       200           bacfb0e0         usbtask-dr usbxfer
 0       38 3   0       200           bacfb3a0         usbtask-hc usbtsk
 0       37 3   0       200           bacfb660               dwc2 dwc2
 0       36 3   1       200           bacfb920               iic1 iicintr
 0       35 3   0       200           bacfbbe0               iic0 iicintr
 0       34 3   0       200           bada4040             sysmon smtaskq
 0       33 3   3       200           bada4300            xcall/3 xcall
 0       32 1   3       200           bada45c0          softser/3
 0       31 1   3       200           bada4880          softclk/3
 0       30 1   3       200           bada4b40          softbio/3
 0       29 1   3       200           bada4e00          softnet/3
 0    >  28 7   3       201           bada50c0             idle/3
 0       27 3   2       200           bada5380            xcall/2 xcall
 0       26 1   2       200           bada5640          softser/2
 0       25 1   2       200           bada5900          softclk/2
 0       24 1   2       200           bada5bc0          softbio/2
 0       23 1   2       200           badd4020          softnet/2
 0    >  22 7   2       201           badd42e0             idle/2
 0       21 3   1       200           badd45a0            xcall/1 xcall
 0       20 1   1       200           badd4860          softser/1
 0       19 3   1       200           badd4b20          softclk/1 tstile
 0       18 1   1       200           badd4de0          softbio/1
 0       17 1   1       200           badd50a0          softnet/1
 0    >  16 7   1       201           badd5360             idle/1
 0       15 3   0       200           badd5620         pmfsuspend pmfsuspend
 0       14 3   2       200           badd58e0           pmfevent pmfevent
 0       13 3   0       200           badd5ba0         sopendfree sopendfr
 0       12 3   3       200           baf04000           nfssilly nfssilly
 0       11 3   3       200           baf042c0            cachegc cachegc
 0       10 3   0       200           baf04580              vrele vrele
 0        9 3   0       200           baf04840             vdrain vdrain
 0        8 3   0       200           baf04b00          modunload mod_unld
 0        7 3   0       200           baf04dc0            xcall/0 xcall
 0        6 1   0       200           baf05080          softser/0
 0        5 1   0       200           baf05340          softclk/0
 0        4 1   0       200           baf05600          softbio/0
 0        3 3   0       200           baf058c0          softnet/0 tstile
 0    >   2 7   0       201           baf05b80             idle/0
 0        1 3   0       200           805718c0            swapper uvm

 db{0}> bt/a b5a226c0
 trace: pid 4858 lid 1 at 0xb4f83d5c
 0xb4f83d5c: netbsd:mi_switch+0x10
 0xb4f83d8c: netbsd:sleepq_block+0xb4
 0xb4f83dcc: netbsd:turnstile_block+0x3e8
 0xb4f83e2c: netbsd:mutex_enter+0x220
 0xb4f83e4c: netbsd:sosetlock+0x58
 0xb4f83e6c: netbsd:udp_attach_wrapper+0x30
 0xb4f83e9c: netbsd:socreate+0x158
 0xb4f83ee4: netbsd:fsocreate+0xac
 0xb4f83f0c: netbsd:sys___socket30+0x30
 0xb4f83f7c: netbsd:syscall+0x88
 0xb4f83fac: netbsd:swi_handler+0x98

 (other 'mdnsd tstile' threads are similar)
 # 3779     1 3   0         0           b7c64120              mdnsd usbxfer
 db{0}> bt/a b7c64120
 trace: pid 3779 lid 1 at 0xb5895b6c
 0xb5895b6c: netbsd:mi_switch+0x10
 0xb5895b9c: netbsd:sleepq_block+0xb4
 0xb5895bcc: netbsd:cv_wait+0x104
 0xb5895bfc: netbsd:usbd_transfer+0x23c
 0xb5895c4c: netbsd:usbd_do_request_flags_pipe+0xd8
 0xb5895c74: netbsd:usbd_do_request+0x38
 0xb5895ca4: netbsd:smsc_write_reg+0x60
 0xb5895cd4: netbsd:smsc_ioctl+0x124
 0xb5895d7c: netbsd:if_mcast_op+0x50
 0xb5895db4: netbsd:in_addmulti+0xc0
 0xb5895e1c: netbsd:ip_ctloutput+0xa4c
 0xb5895e4c: netbsd:udp_ctloutput+0x94
 0xb5895e6c: netbsd:udp_ctloutput_wrapper+0x30
 0xb5895ed4: netbsd:sosetopt+0x6c
 0xb5895f0c: netbsd:sys_setsockopt+0x84
 0xb5895f7c: netbsd:syscall+0x88
 0xb5895fac: netbsd:swi_handler+0x98

 # 2702     1 3   1         0           b9dbaea0               sshd tstile
 db{0}> bt/a b9dbaea0
 trace: pid 2702 lid 1 at 0xb9f8dc24
 0xb9f8dc24: netbsd:mi_switch+0x10
 0xb9f8dc54: netbsd:sleepq_block+0xb4
 0xb9f8dc94: netbsd:turnstile_block+0x3e8
 0xb9f8dcf4: netbsd:mutex_enter+0x220
 0xb9f8dd1c: netbsd:sopoll+0x24
 0xb9f8ddac: netbsd:sel_do_scan+0x304
 0xb9f8debc: netbsd:selcommon.part.2+0x12c
 0xb9f8df0c: netbsd:sys___select50+0x84
 0xb9f8df7c: netbsd:syscall+0x88
 0xb9f8dfac: netbsd:swi_handler+0x98

 # 0       39 3   3       200           bacfb0e0         usbtask-dr usbxfer
 db{0}> bt/a bacfb0e0
 trace: pid 0 lid 39 at 0xbacedd7c
 0xbacedd7c: netbsd:mi_switch+0x10
 0xbaceddac: netbsd:sleepq_block+0xb4
 0xbacedddc: netbsd:cv_wait+0x104
 0xbacede0c: netbsd:usbd_transfer+0x23c
 0xbacede5c: netbsd:usbd_do_request_flags_pipe+0xd8
 0xbacede84: netbsd:usbd_do_request+0x38
 0xbacedeb4: netbsd:smsc_read_reg+0x60
 0xbacededc: netbsd:smsc_wait_for_bits+0x4c
 0xbacedf04: netbsd:smsc_miibus_readreg+0x4c
 0xbacedf2c: netbsd:mii_phy_tick+0x68
 0xbacedf4c: netbsd:ukphy_service+0xac
 0xbacedf64: netbsd:mii_tick+0x54
 0xbacedf7c: netbsd:smsc_tick_task+0x34
 0xbacedfac: netbsd:usb_task_thread+0x10c

 # 0       19 3   1       200           badd4b20          softclk/1 tstile
 db{0}> bt/a badd4b20
 trace: pid 0 lid 19 at 0xbadb9e2c
 0xbadb9e2c: netbsd:mi_switch+0x10
 0xbadb9e5c: netbsd:sleepq_block+0xb4
 0xbadb9e9c: netbsd:turnstile_block+0x3e8
 0xbadb9efc: netbsd:mutex_enter+0x220
 0xbadb9f14: netbsd:frag6_fasttimo+0x24
 0xbadb9f2c: netbsd:pffasttimo+0x58
 0xbadb9f64: netbsd:callout_softclock+0x194
 0xbadb9fac: netbsd:softint_dispatch+0xd4
 Bad frame pointer: 0x805f9f54

 # 0        3 3   0       200           baf058c0          softnet/0 tstile
 db{0}> bt/a baf058c0
 trace: pid 0 lid 3 at 0xbaeffe24
 0xbaeffe24: netbsd:mi_switch+0x10
 0xbaeffe54: netbsd:sleepq_block+0xb4
 0xbaeffe94: netbsd:turnstile_block+0x3e8
 0xbaeffef4: netbsd:mutex_enter+0x220
 0xbaefff64: netbsd:ipintr+0x3c
 0xbaefffac: netbsd:softint_dispatch+0xd4
 Bad frame pointer: 0xba987fac

 > 
 >>  db{0}> bt/t 0t230
 >>  trace: pid 230 lid 1 at 0xbaccdd4c
 >>  0xbaccdd4c: netbsd:mi_switch+0x10
 >>  0xbaccdd7c: netbsd:sleepq_block+0xb4
 >>  0xbaccddbc: netbsd:turnstile_block+0x3e8
 >>  0xbaccde1c: netbsd:mutex_enter+0x220
 >>  0xbaccde3c: netbsd:sosetlock+0x58
 >>  0xbaccde6c: netbsd:tcp_attach_wrapper+0x30
 >>  0xbaccde9c: netbsd:socreate+0x158
 >>  0xbaccdee4: netbsd:fsocreate+0xac
 >>  0xbaccdf0c: netbsd:sys___socket30+0x30
 >>  0xbaccdf7c: netbsd:syscall+0x88
 >>  0xbaccdfac: netbsd:swi_handler+0x98
 > 
 > Blocked on softnet_lock in sosetlock
 > 
 > x/x softnet_lock should tell us who owns it. Get a backtrace from the 
 > offending lwp.

 Unfortunately, softnet_lock does not seem to point to a valid LWP.
 Could a thread have exited while holding the lock?
 db{0}> x/x softnet_lock
 netbsd:softnet_lock:    bafadf40
 db{0}> bt/a bafadf40
 trace: pid 0 lid 7235937 at 0xbaaaab2a
 0xbaaaab2a: 8855e086


From: Nick Hudson <skrll@netbsd.org>
To: gnats-bugs@NetBSD.org, gnats-admin@netbsd.org, netbsd-bugs@netbsd.org,
 mfpnb@plass-family.net
Cc: 
Subject: Re: kern/50491: unkillable wait in usbd_transfer while using usmsc0
 on raspberry pi 2
Date: Fri, 4 Dec 2015 08:28:55 +0000

 On 12/04/15 08:20, Michael Plass wrote:
 > The following reply was made to PR kern/50491; it has been noted by GNATS.

 >   db{0}> x/x softnet_lock
 >   netbsd:softnet_lock:    bafadf40
 >   db{0}> bt/a bafadf40
 >   trace: pid 0 lid 7235937 at 0xbaaaab2a
 >   0xbaaaab2a: 8855e086
 >   
 Oops, 0xbafadf40 is the address of softnet_lock

 x/x 0xbafadf40 should give you the lwp pointer

 Nick

From: Michael Plass <mfpnb@plass-family.net>
To: gnats-bugs@NetBSD.org
Cc: 
Subject: Re: kern/50491: unkillable wait in usbd_transfer while using usmsc0 on raspberry pi 2
Date: Fri, 4 Dec 2015 08:34:49 -0800

 On Dec 4, 2015, at 2:05 AM, Nick Hudson wrote:

 > Oops, 0xbafadf40 is the address of softnet_lock

 db{0}> x/x softnet_lock
 netbsd:softnet_lock:    bafadf40
 db{0}> x/x bafadf40
 bafadf40:       ba526662
 db{0}> x/x bafadf40,4
 bafadf40:       ba526662    5aa3c85d    e           baaaaaaa

 (hmm - not aligned, can't be good)
 db{0}> bt/a ba526662
 address 0xba48 is invalid
 trace: pid 0 lid 0
 Non-emulated page fault with intr_depth > 0
 Fatal kernel mode data abort: 'Translation Fault (S)'
 trapframe: 0x805f7658
 FSR=00000005, FAR=1fb0b912, spsr=60000013
 r0 =803d6e48, r1 =00000010, r2 =00000000, r3 =1fb0b906
 r4 =ba526662, r5 =80238604, r6 =80238468, r7 =00000001
 r8 =0000ffff, r9 =8057d378, r10=00000000, r11=805f7b54
 r12=805f75e0, ssp=805f76a8, slr=80238010, pc =8004e894

  Faulted in DDB; continuing...

From: Nick Hudson <skrll@netbsd.org>
To: gnats-bugs@NetBSD.org, gnats-admin@netbsd.org, netbsd-bugs@netbsd.org,
 mfpnb@plass-family.net
Cc: 
Subject: Re: kern/50491: unkillable wait in usbd_transfer while using usmsc0
 on raspberry pi 2
Date: Fri, 4 Dec 2015 16:43:30 +0000

 On 12/04/15 16:35, Michael Plass wrote:
 > The following reply was made to PR kern/50491; it has been noted by GNATS.
 >
 > From: Michael Plass <mfpnb@plass-family.net>
 > To: gnats-bugs@NetBSD.org
 > Cc:
 > Subject: Re: kern/50491: unkillable wait in usbd_transfer while using usmsc0 on raspberry pi 2
 > Date: Fri, 4 Dec 2015 08:34:49 -0800
 >
 >   On Dec 4, 2015, at 2:05 AM, Nick Hudson wrote:
 >   
 >   > Oops, 0xbafadf40 is the address of softnet_lock
 >   
 >   db{0}> x/x softnet_lock
 >   netbsd:softnet_lock:    bafadf40
 >   db{0}> x/x bafadf40
 >   bafadf40:       ba526662


 need to strip off the bottom two bits


 http://nxr.netbsd.org/xref/src/sys/sys/mutex.h#161

 Is 0xba526660 from a new lockup as I don't see it in the list of lwps in 
 the PR?

 Nick

From: Michael Plass <mfpnb@plass-family.net>
To: gnats-bugs@NetBSD.org
Cc: 
Subject: Re: kern/50491: unkillable wait in usbd_transfer while using usmsc0 on raspberry pi 2
Date: Fri, 4 Dec 2015 19:24:21 -0800

 On Dec 4, 2015, at 10:20 AM, Nick Hudson wrote:
 >=20
 > Is 0xba526660 from a new lockup as I don't see it in the list of lwps =
 in=20
 > the PR?
 >=20
 Yes, it was a new instance. But I still have the ps list for that, and =
 it turns out to be:

 2193     1 3   3         0           ba526660              mdnsd usbxfer

 and we've seen the stack for that one before.

 I also had tracing on as before; the last little bit looks like:
 usbd_transfer: xfer=3D0xbacb9d40, flags=3D0x2, pipe=3D0xbafa0780, =
 running=3D1
 usbd_dump_queue: pipe=3D0xbafa0780
   xfer=3D0xbacb98c0
 usb_allocmem: use frag=3D0xc90acd80 size=3D4
 dwc2_device_ctrl_transfer:=20
 usb_insert_transfer: pipe=3D0xbafa0780 running=3D1 timeout=3D5000
 dwc2_device_start: xfer=3D0xbacb98c0 pipe=3D0xbafa0780
 dwctwo0: urb=3D0x81365588, xfer=3D0x0
 usb_schedsoftintr: polling=3D0
 usb_schedsoftintr: polling=3D0

 - Michael


From: Michael Plass <mfpnb@plass-family.net>
To: gnats-bugs@NetBSD.org
Cc: 
Subject: Re: kern/50491: unkillable wait in usbd_transfer while using usmsc0 on raspberry pi 2
Date: Fri, 4 Dec 2015 23:21:46 -0800

 Nick,
 I rebuilt with options LOCKDEBUG, and got this. I'll leave it in ddb for =
 now in case you want me to poke around some more. - Michael
 Stopped in pid 0.2 (system) at  netbsd:cpu_Debugger+0x4:        bx      =
 r14
 db{0}> ps
 PID    LID S CPU     FLAGS       STRUCT LWP *               NAME WAIT
 5484     1 3   0        80           b7a64c00              sleep nanoslp
 4159     1 3   0         0           b72379e0              mdnsd usbxfer
 3675     1 3   2        80           ba6bbc40               find ttyout
 3141     1 3   3        80           b7a65c80                 sh wait
 3735     1 3   2     40000           b7a659c0               sshd tstile
 3028     1 3   3        80           b7a64680               sshd select
 40       1 3   0        80           ba038ea0                 sh wait
 41       1 3   1        80           baceae20                 su wait
 2518     1 3   1        80           ba6ba0c0                 sh wait
 2202     1 3   2        80           b7a65700               sshd select
 2460     1 3   2        80           ba0380e0               sshd select
 2314     1 3   2        80           bab83960              getty ttyraw
 2264     1 3   2        80           bacea8a0               cron nanoslp
 2285     1 3   0        80           b7a64ec0              inetd kqueue
 2077     1 3   2        80           ba6babc0               qmgr kqueue
 2206     1 3   1        80           ba039c60             pickup kqueue
 2027     1 3   0        80           b7a65180             master kqueue
 1841     1 3   3        80           bab82360               sshd select
 1582     1 3   1   1000000           ba038be0               ntpd tstile
 1572     1 3   0        80           bacea320            devpubd devmon
 565      1 3   3        80           ba6bb400             dhcpcd select
 1        1 3   2        80           baceab60               init wait
 0       64 3   2       200           bacb0e40            physiod physiod
 0       63 3   2       280           bab83c20          VCHIQka-0 =
 lnxcmplt
 0       62 3   2       200           bacb0080           aiodoned =
 aiodoned
 0       61 3   0       200           bacea5e0            ioflush syncer
 0       60 3   2       200           bacb1c00           pgdaemon =
 pgdaemon
 0       59 3   2       280           bacb0340            vcaudio data
 0       58 3   2       280           bacb0600           VCHIQs-0 semacv
 0       57 3   2       280           bacb08c0           VCHIQr-0 semacv
 0       56 3   2       280           bacb0b80            VCHIQ-0 semacv
 0       53 3   3       200           bacb1100               usb0 usbevt
 0       51 3   3       200           bacea060              unpgc unpgc
 0       50 3   1       200           bacb1940        vmem_rehash =
 vmem_rehash
 0       49 3   3       200           bacb13c0             sdmmc0 =
 mmctaskq
 0       48 3   2       200           bacb1680            vcmbox0 vcmbox0
 0       39 3   1       200           baceb0e0         usbtask-dr usbxfer
 0       38 3   0       200           baceb3a0         usbtask-hc usbtsk
 0       37 3   0       200           baceb660               dwc2 dwc2
 0       36 3   3       200           baceb920               iic1 iicintr
 0       35 3   0       200           bacebbe0               iic0 iicintr
 0       34 3   0       200           bad9c040             sysmon smtaskq
 0       33 3   3       200           bad9c300            xcall/3 xcall
 0       32 1   3       200           bad9c5c0          softser/3
 0       31 3   3       200           bad9c880          softclk/3 tstile
 0       30 1   3       200           bad9cb40          softbio/3
 0       29 1   3       200           bad9ce00          softnet/3
 0    >  28 7   3       201           bad9d0c0             idle/3
 0       27 3   2       200           bad9d380            xcall/2 xcall
 0       26 1   2       200           bad9d640          softser/2
 0       25 3   2       200           bad9d900          softclk/2 tstile
 0       24 1   2       200           bad9dbc0          softbio/2
 0       23 1   2       200           badcc020          softnet/2
 0    >  22 7   2       201           badcc2e0             idle/2
 0       21 3   1       200           badcc5a0            xcall/1 xcall
 0       20 1   1       200           badcc860          softser/1
 0       19 1   1       200           badccb20          softclk/1
 0       18 1   1       200           badccde0          softbio/1
 0       17 1   1       200           badcd0a0          softnet/1
 0    >  16 7   1       201           badcd360             idle/1
 0       15 3   2       200           badcd620         pmfsuspend =
 pmfsuspend
 0       14 3   1       200           badcd8e0           pmfevent =
 pmfevent
 0       13 3   0       200           badcdba0         sopendfree =
 sopendfr
 0       12 3   0       200           baefc000           nfssilly =
 nfssilly
 0       11 3   3       200           baefc2c0            cachegc cachegc
 0       10 3   2       200           baefc580              vrele vrele
 0        9 3   2       200           baefc840             vdrain vdrain
 0        8 3   0       200           baefcb00          modunload =
 mod_unld
 0        7 3   0       200           baefcdc0            xcall/0 xcall
 0        6 1   0       200           baefd080          softser/0
 0        5 3   0       200           baefd340          softclk/0 tstile
 0        4 1   0       200           baefd600          softbio/0
 0        3 3   0       200           baefd8c0          softnet/0 tstile
 0    >   2 7   0       201           baefdb80             idle/0
 0        1 3   3       200           805718c0            swapper uvm
 db{0}> x/x softnet_lock
 netbsd:softnet_lock:    bafadf40
 db{0}> show lock bafadf40
 lock address : 0x00000000bafadf40 type     :     sleep/adaptive
 initialized  : 0x0000000080154ee0
 shared holds :                  0 exclusive:                  1
 shares wanted:                  0 exclusive:                  6
 current cpu  :                  0 last held:                  0
 current lwp  : 0x00000000baefdb80 last held: 0x00000000b72379e0
 last locked* : 0x00000000802c1a3c unlocked : 0x00000000802c1a8c
 owner field  : 0x00000000b72379e0 wait/spin:                1/0

 Turnstile chain at 0x8057a340.
 =3D> Turnstile at 0xbaefbf48 (wrq=3D0xbaefbf58, rdq=3D0xbaefbf60).
 =3D> 0 waiting readers:
 =3D> 6 waiting writers: 0xbaefd8c0 0xbad9c880 0xbaefd340 0xbad9d900 =
 0xba038be0 0xb
 7a659c0
 db{0}> bt/a b72379e0
 trace: pid 4159 lid 1 at 0xb69cfae4
 0xb69cfae4: netbsd:mi_switch+0x10
 0xb69cfb14: netbsd:sleepq_block+0xb4
 0xb69cfb4c: netbsd:cv_wait+0x130
 0xb69cfb7c: netbsd:usbd_transfer+0x23c
 0xb69cfbcc: netbsd:usbd_do_request_flags_pipe+0xd8
 0xb69cfbf4: netbsd:usbd_do_request+0x38
 0xb69cfc24: netbsd:smsc_write_reg+0x60
 0xb69cfc4c: netbsd:smsc_setmulti+0x110
 0xb69cfc7c: netbsd:smsc_ioctl+0x124
 0xb69cfd24: netbsd:if_mcast_op+0x50
 0xb69cfd74: netbsd:in6_addmulti+0x1ac
 0xb69cfd9c: netbsd:in6_joingroup+0x44
 0xb69cfe24: netbsd:ip6_ctloutput+0x132c
 0xb69cfe4c: netbsd:udp6_ctloutput+0x9c
 0xb69cfe6c: netbsd:udp6_ctloutput_wrapper+0x30
 0xb69cfed4: netbsd:sosetopt+0x6c
 0xb69cff0c: netbsd:sys_setsockopt+0x84
 0xb69cff7c: netbsd:syscall+0x88
 0xb69cffac: netbsd:swi_handler+0x98
 db{0}> bt/a 0xbaefd8c0
 trace: pid 0 lid 3 at 0xbaef7e24
 0xbaef7e24: netbsd:mi_switch+0x10
 0xbaef7e54: netbsd:sleepq_block+0xb4
 0xbaef7e94: netbsd:turnstile_block+0x318
 0xbaef7ef4: netbsd:mutex_enter+0x264
 0xbaef7f64: netbsd:ipintr+0x3c
 0xbaef7fac: netbsd:softint_dispatch+0xd4
 Bad frame pointer: 0x805fff6c
 db{0}> bt/a 0xbad9c880
 trace: pid 0 lid 31 at 0xbad87e2c
 0xbad87e2c: netbsd:mi_switch+0x10
 0xbad87e5c: netbsd:sleepq_block+0xb4
 0xbad87e9c: netbsd:turnstile_block+0x318
 0xbad87efc: netbsd:mutex_enter+0x264
 0xbad87f14: netbsd:frag6_fasttimo+0x24
 0xbad87f2c: netbsd:pffasttimo+0x58
 0xbad87f64: netbsd:callout_softclock+0x194
 0xbad87fac: netbsd:softint_dispatch+0xd4
 Bad frame pointer: 0x80605f54
 db{0}> bt/a 0xbaefd340
 trace: pid 0 lid 5 at 0xbaef3e24
 0xbaef3e24: netbsd:mi_switch+0x10
 0xbaef3e54: netbsd:sleepq_block+0xb4
 0xbaef3e94: netbsd:turnstile_block+0x318
 0xbaef3ef4: netbsd:mutex_enter+0x264
 0xbaef3f2c: netbsd:nd6_timer+0x58
 0xbaef3f64: netbsd:callout_softclock+0x194
 0xbaef3fac: netbsd:softint_dispatch+0xd4
 Bad frame pointer: 0x805fff6c
 db{0}> bt/a 0xbad9d900
 trace: pid 0 lid 25 at 0xbad9be1c
 0xbad9be1c: netbsd:mi_switch+0x10
 0xbad9be4c: netbsd:sleepq_block+0xb4
 0xbad9be8c: netbsd:turnstile_block+0x318
 0xbad9beec: netbsd:mutex_enter+0x264
 0xbad9bf2c: netbsd:tcp_timer_rexmt+0x24
 0xbad9bf64: netbsd:callout_softclock+0x194
 0xbad9bfac: netbsd:softint_dispatch+0xd4
 Bad frame pointer: 0x80603f54
 db{0}> bt/a 0xba038be0
 trace: pid 1582 lid 1 at 0xb9693c5c
 0xb9693c5c: netbsd:mi_switch+0x10
 0xb9693c8c: netbsd:sleepq_block+0xb4
 0xb9693ccc: netbsd:turnstile_block+0x318
 0xb9693d2c: netbsd:mutex_enter+0x264
 0xb9693dbc: netbsd:sosend+0x38
 0xb9693e74: netbsd:do_sys_sendmsg_so.isra.2+0x230
 0xb9693eb4: netbsd:do_sys_sendmsg+0x90
 0xb9693f0c: netbsd:sys_sendto+0x64
 0xb9693f7c: netbsd:syscall+0x88
 0xb9693fac: netbsd:swi_handler+0x98
 db{0}> bt/a 0xb7a659c0
 trace: pid 3735 lid 1 at 0xb7aa3c24
 0xb7aa3c24: netbsd:mi_switch+0x10
 0xb7aa3c54: netbsd:sleepq_block+0xb4
 0xb7aa3c94: netbsd:turnstile_block+0x318
 0xb7aa3cf4: netbsd:mutex_enter+0x264
 0xb7aa3d1c: netbsd:sopoll+0x24
 0xb7aa3dac: netbsd:sel_do_scan+0x304
 0xb7aa3ebc: netbsd:selcommon.part.2+0x12c
 0xb7aa3f0c: netbsd:sys___select50+0x84
 0xb7aa3f7c: netbsd:syscall+0x88
 0xb7aa3fac: netbsd:swi_handler+0x98
 db{0}> callout
 hardclock_ticks now: 43145
     ticks  wheel               arg  func
     -2231 -1/-256                0  rt_timer_timer
     -2231 -1/-256         bad6680c  vcons_intr
     -2131 -1/-256                0  if_slowtimo
     -2131 -1/-256                0  nd6_timer
     -2225 -1/-256                0  sched_balance
     -2221 -1/-256         b7a64c00  sleepq_timeout
     -2147 -1/-256         bacebbe0  sleepq_timeout
     -2138 -1/-256         bacea5e0  sleepq_timeout
     -1144 -1/-256         baf9c148  sme_events_check
     -2147 -1/-256         baefc580  sleepq_timeout
     -2145 -1/-256         baefc840  sleepq_timeout
         9 -1/-256         bacea8a0  sleepq_timeout
     -2247 -1/-256         baceb920  sleepq_timeout
     -2245 -1/-256         baefc2c0  sleepq_timeout
     -2232 -1/-256                0  tcp_slowtimo
     -2226 -1/-256                0  pfslowtimo
     -2203 -1/-256         805718c0  sleepq_timeout
      -812 -1/-256         bacb1100  sleepq_timeout
        53  0/197          80fbfef0  realtimerexpire
     27476  1/275          ba6babc0  sleepq_timeout
     30676  1/288          80fbfe40  realtimerexpire
     30776  1/288          80fbfd90  realtimerexpire
       868  1/427                 0  vmem_rehash_all_kick
      3376  1/437          b7a65180  sleepq_timeout
      7375  1/453          ba039c60  sleepq_timeout
     21185  1/507                 0  arptimer
    122436  2/514          ba6bb400  sleepq_timeout
    316869  2/517                 0  nd6_slowtimo
    597375  2/521          80fbfce0  realtimerexpire
    717716  2/523          ba7098c0  tcp_timer_keep
    717728  2/523          ba709290  tcp_timer_keep
   4317717  2/578          b7a65700  sleepq_timeout
   8559269  2/643                 0  in6_tmpaddrtimer
   8604597  2/643          ba7af458  nd6_llinfo_timer
 db{0}> bt/a baceb0e0
 trace: pid 0 lid 39 at 0xbacddd74
 0xbacddd74: netbsd:mi_switch+0x10
 0xbacddda4: netbsd:sleepq_block+0xb4
 0xbacddddc: netbsd:cv_wait+0x130
 0xbacdde0c: netbsd:usbd_transfer+0x23c
 0xbacdde5c: netbsd:usbd_do_request_flags_pipe+0xd8
 0xbacdde84: netbsd:usbd_do_request+0x38
 0xbacddeb4: netbsd:smsc_read_reg+0x60
 0xbacddedc: netbsd:smsc_wait_for_bits+0x4c
 0xbacddf04: netbsd:smsc_miibus_readreg+0x4c
 0xbacddf2c: netbsd:mii_phy_tick+0x68
 0xbacddf4c: netbsd:ukphy_service+0xac
 0xbacddf64: netbsd:mii_tick+0x54
 0xbacddf7c: netbsd:smsc_tick_task+0x34
 0xbacddfac: netbsd:usb_task_thread+0x10c
 db{0}> x/i 802c1a3c
 netbsd:sosetopt+0x34:   ldr     r3, [r8]
 db{0}> x/i 802c1a8c
 netbsd:sosetopt+0x84:   mov     r0, r9
 db{0}>=20

State-Changed-From-To: open->analyzed
State-Changed-By: skrll@NetBSD.org
State-Changed-When: Mon, 07 Dec 2015 07:47:26 +0000
State-Changed-Why:
Problem is understood and being discussed on tech-{kern,net}

http://mail-index.netbsd.org/tech-kern/2015/12/06/msg019747.html
http://mail-index.netbsd.org/tech-net/2015/12/06/msg005443.html


From: Nick Hudson <skrll@netbsd.org>
To: gnats-bugs@NetBSD.org, gnats-admin@netbsd.org, netbsd-bugs@netbsd.org,
 mfpnb@plass-family.net
Cc: 
Subject: Re: kern/50491: unkillable wait in usbd_transfer while using usmsc0
 on raspberry pi 2
Date: Mon, 7 Dec 2015 21:37:11 +0000

 This is a multi-part message in MIME format.
 --------------080106030607000106010407
 Content-Type: text/plain; charset=windows-1252; format=flowed
 Content-Transfer-Encoding: 7bit

 hi,

 Can you try this patch without the assert_sleepable patch and see if it 
 helps?

 thanks,
 Nick

 --------------080106030607000106010407
 Content-Type: text/x-patch;
  name="usb.c.diff"
 Content-Transfer-Encoding: 7bit
 Content-Disposition: attachment;
  filename="usb.c.diff"

 Index: sys/dev/usb/usb.c
 ===================================================================
 RCS file: /cvsroot/src/sys/dev/usb/usb.c,v
 retrieving revision 1.154
 diff -u -p -r1.154 usb.c
 --- sys/dev/usb/usb.c	25 Jul 2014 08:10:39 -0000	1.154
 +++ sys/dev/usb/usb.c	7 Dec 2015 21:35:06 -0000
 @@ -212,7 +212,7 @@ usb_attach(device_t parent, device_t sel
  	aprint_normal("\n");

  	/* XXX we should have our own level */
 -	sc->sc_bus->soft = softint_establish(SOFTINT_NET | SOFTINT_MPSAFE,
 +	sc->sc_bus->soft = softint_establish(SOFTINT_SERIAL | SOFTINT_MPSAFE,
  	    usb_soft_intr, sc->sc_bus);
  	if (sc->sc_bus->soft == NULL) {
  		aprint_error("%s: can't register softintr\n",


 --------------080106030607000106010407--

From: Michael Plass <mfpnb@plass-family.net>
To: gnats-bugs@NetBSD.org
Cc: 
Subject: Re: kern/50491: unkillable wait in usbd_transfer while using usmsc0 on raspberry pi 2
Date: Mon, 7 Dec 2015 20:28:07 -0800

 On Dec 7, 2015, at 1:55 PM, Nick Hudson wrote:

 > Can you try this patch without the assert_sleepable patch and see if =
 it=20
 > helps?

 It'd definitely an improvement. No lockup so far.

 I'm going to try it using a kernel without LOCKDEBUG, because that =
 seemed to make the lockup somewhat harder to provoke.

 Thanks,
 - Michael

From: Michael Plass <mfpnb@plass-family.net>
To: gnats-bugs@NetBSD.org
Cc: 
Subject: Re: kern/50491: unkillable wait in usbd_transfer while using usmsc0 on raspberry pi 2
Date: Tue, 8 Dec 2015 19:27:02 -0800

 On Dec 7, 2015, at 9:50 PM, Michael Plass wrote:

 > I'm going to try it using a kernel without LOCKDEBUG

 It looks good! No more unkillable lockups.

 Maybe related, maybe not:
 I did have a dropped tcp connection (ip4, I think). Also, I had a ipv6 =
 connection
 transferring from the pi to my laptop (inetd/chargen on the pi), and =
 that transfer stalled - no data moving, but the connection didn't drop.  =
 This happened twice.  The first time I killed the transfer, the other =
 one is still in the stuck state.

 The kernel and user stack traces are:
 db{0}> bt/a b5ce74a0
 trace: pid 4567 lid 1 at 0xb4e2fcdc
 0xb4e2fcdc: netbsd:mi_switch+0x10
 0xb4e2fd0c: netbsd:sleepq_block+0xb4
 0xb4e2fd44: netbsd:cv_timedwait_sig+0x108
 0xb4e2fee4: netbsd:kevent1+0x2cc
 0xb4e2ff0c: netbsd:sys___kevent50+0x38
 0xb4e2ff7c: netbsd:syscall+0x88
 0xb4e2ffac: netbsd:swi_handler+0x98
 db{0}> cont

 mipi# gdb /usr/sbin/inetd 21203
 GNU gdb (GDB) 7.7.1
 Copyright (C) 2014 Free Software Foundation, Inc.
 License GPLv3+: GNU GPL version 3 or later =
 <http://gnu.org/licenses/gpl.html>
 This is free software: you are free to change and redistribute it.
 There is NO WARRANTY, to the extent permitted by law.  Type "show =
 copying"
 and "show warranty" for details.
 This GDB was configured as "arm--netbsdelf-eabihf".
 Type "show configuration" for configuration details.
 For bug reporting instructions, please see:
 <http://www.gnu.org/software/gdb/bugs/>.
 Find the GDB manual and other documentation resources online at:
 <http://www.gnu.org/software/gdb/documentation/>.
 For help, type "help".
 Type "apropos word" to search for commands related to "word"...
 Reading symbols from /usr/sbin/inetd...(no debugging symbols =
 found)...done.
 Attaching to program: /usr/sbin/inetd, process 21203
 Reading symbols from /usr/lib/libwrap.so.1...(no debugging symbols =
 found)...done.
 Loaded symbols for /usr/lib/libwrap.so.1
 Reading symbols from /usr/lib/libutil.so.7...(no debugging symbols =
 found)...done.
 Loaded symbols for /usr/lib/libutil.so.7
 Reading symbols from /usr/lib/libipsec.so.3...(no debugging symbols =
 found)...done.
 Loaded symbols for /usr/lib/libipsec.so.3
 Reading symbols from /usr/lib/libc.so.12...(no debugging symbols =
 found)...done.
 Loaded symbols for /usr/lib/libc.so.12
 Reading symbols from /usr/libexec/ld.elf_so...(no debugging symbols =
 found)...done.
 Loaded symbols for /usr/libexec/ld.elf_so
 0x401e3358 in write () from /usr/lib/libc.so.12
 (gdb) where
 #0  0x401e3358 in write () from /usr/lib/libc.so.12
 #1  0x00012498 in chargen_stream ()
 #2  0x00011b80 in run_service ()
 #3  0x00014ffc in main ()
 (gdb) quit

 Thanks,
 - Michael=

From: Nick Hudson <skrll@netbsd.org>
To: gnats-bugs@NetBSD.org, gnats-admin@netbsd.org, netbsd-bugs@netbsd.org,
 mfpnb@plass-family.net
Cc: 
Subject: Re: kern/50491: unkillable wait in usbd_transfer while using usmsc0
 on raspberry pi 2
Date: Fri, 11 Dec 2015 09:05:35 +0000

 On 12/09/15 03:30, Michael Plass wrote:
 > The following reply was made to PR kern/50491; it has been noted by GNATS.
 >
 > From: Michael Plass <mfpnb@plass-family.net>
 > To: gnats-bugs@NetBSD.org
 > Cc:
 > Subject: Re: kern/50491: unkillable wait in usbd_transfer while using usmsc0 on raspberry pi 2
 > Date: Tue, 8 Dec 2015 19:27:02 -0800
 >
 >   On Dec 7, 2015, at 9:50 PM, Michael Plass wrote:
 >   
 >   > I'm going to try it using a kernel without LOCKDEBUG
 >   
 >   It looks good! No more unkillable lockups.

 Good news.

 >   
 >   Maybe related, maybe not:
 >   I did have a dropped tcp connection (ip4, I think). Also, I had a ipv6 =
 >   connection
 >   transferring from the pi to my laptop (inetd/chargen on the pi), and =
 >   that transfer stalled - no data moving, but the connection didn't drop.  =
 >   This happened twice.  The first time I killed the transfer, the other =
 >   one is still in the stuck state.
 >   
 >   The kernel and user stack traces are:
 >   db{0}> bt/a b5ce74a0
 >   trace: pid 4567 lid 1 at 0xb4e2fcdc
 >   0xb4e2fcdc: netbsd:mi_switch+0x10
 >   0xb4e2fd0c: netbsd:sleepq_block+0xb4
 >   0xb4e2fd44: netbsd:cv_timedwait_sig+0x108
 >   0xb4e2fee4: netbsd:kevent1+0x2cc
 >   0xb4e2ff0c: netbsd:sys___kevent50+0x38
 >   0xb4e2ff7c: netbsd:syscall+0x88
 >   0xb4e2ffac: netbsd:swi_handler+0x98
 >   db{0}> cont

 Would need some more information about other lwps, I think.

 Thanks,
 Nick

From: Michael Plass <mfpnb@plass-family.net>
To: gnats-bugs@NetBSD.org
Cc: 
Subject: Re: kern/50491: unkillable wait in usbd_transfer while using usmsc0 on raspberry pi 2
Date: Sun, 13 Dec 2015 20:44:26 -0800

 I will try to reproduce the stuck tcp transfer again.
 I had a v6 connection going for days; it didn't fail until I began the
 doing the mdnsd restarts again. But I did not catch it in a stuck state; =
 perhaps
 the connection timed out.

 Thanks,
 - Michael

From: Michael Plass <michael@plass-family.net>
To: Nick Hudson <skrll@netbsd.org>
Cc: gnats-bugs@NetBSD.org,
 Michael Plass <mfpnb@plass-family.net>
Subject: Re: kern/50491: unkillable wait in usbd_transfer while using usmsc0 on raspberry pi 2
Date: Mon, 1 Feb 2016 22:39:51 -0800

 Nick,

 I've been running for 5 days with a NetBSD 7.0 (RPI2) kernel with just
 one patch - the one from http://www.netbsd.org/~skrll/usb.softint.diff

 I've seen no problems with it - it looks good.

 Thanks,
 - Michael

From: Michael Plass <mfpnb@plass-family.net>
To: Nick Hudson <skrll@netbsd.org>
Cc: gnats-bugs@NetBSD.org
Subject: Re: kern/50491: unkillable wait in usbd_transfer while using usmsc0 on raspberry pi 2
Date: Tue, 17 May 2016 20:07:50 -0700

 Nick,

 I retested on netbsd-current, just in case the usb stack changes somehow
 addressed this problem. But it still happens.

 Are you willing to apply http://www.netbsd.org/~skrll/usb.softint.diff to
 current at this point? I can test.

 Thanks,
 - Michael

State-Changed-From-To: analyzed->feedback
State-Changed-By: skrll@NetBSD.org
State-Changed-When: Tue, 01 Nov 2016 16:46:44 +0000
State-Changed-Why:
Fixed in HEAD. ok to close?


From: Michael Plass <mfpnb@plass-family.net>
To: gnats-bugs@NetBSD.org
Cc: 
Subject: Re: kern/50491 (unkillable wait in usbd_transfer while using usmsc0 on raspberry pi 2)
Date: Tue, 1 Nov 2016 20:56:42 -0700

 Yes, this can be closed now. Thanks!

 - Michael

State-Changed-From-To: feedback->closed
State-Changed-By: wiz@NetBSD.org
State-Changed-When: Wed, 02 Nov 2016 08:23:37 +0000
State-Changed-Why:
Confirmed fixed, thanks!


>Unformatted:

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.39 2013/11/01 18:47:49 spz Exp $
$NetBSD: gnats_config.sh,v 1.8 2006/05/07 09:23:38 tsutsui Exp $
Copyright © 1994-2014 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.