usb: dwc2: NMI watchdog: BUG: soft lockup - CPU#0 stuck for 146s

Stefan Wahren stefan.wahren at i2se.com
Mon Oct 31 13:34:23 PDT 2016


I inspired by this issue [1] i build up a slightly modified setup with a
Raspberry Pi B (mainline kernel 4.9rc3), a powered 7 port USB hub and 5 Prolific
PL2303 USB to serial convertors. I modified the usb_test for dwc2 [2], which
only tries to open all ttyUSB devices one after the other. 

Unfortunately the complete system stuck after opening the first ttyUSB device (
heartbeat LED stop blinking, no reaction to debug UART). The only way to
reanimate the system is to powerdown the USB hub with the USB to serial
convertors.

[1] - https://github.com/raspberrypi/linux/issues/1692
[2] - https://gist.github.com/lategoodbye/dd0d30af27b6f101b03d5923b279dbaa

pi at raspberrypi:~$ lsusb -t
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=dwc2/1p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/3p, 480M
        |__ Port 1: Dev 3, If 0, Class=Vendor Specific Class, Driver=smsc95xx,
480M
        |__ Port 2: Dev 11, If 0, Class=Hub, Driver=hub/4p, 480M
            |__ Port 3: Dev 15, If 0, Class=Vendor Specific Class,
Driver=pl2303, 12M
            |__ Port 1: Dev 12, If 0, Class=Hub, Driver=hub/4p, 480M
                |__ Port 2: Dev 14, If 0, Class=Vendor Specific Class,
Driver=pl2303, 12M
                |__ Port 3: Dev 16, If 0, Class=Vendor Specific Class,
Driver=pl2303, 12M
            |__ Port 4: Dev 17, If 0, Class=Vendor Specific Class,
Driver=pl2303, 12M
            |__ Port 2: Dev 13, If 0, Class=Vendor Specific Class,
Driver=pl2303, 12M

pi at raspberrypi:~$ ./usb_test
idle
opening [/dev/ttyUSB0] ok
[  232.658768] NMI watchdog: BUG: soft lockup - CPU#0 stuck for 146s!
[usb_test:522]
[  232.678443] Modules linked in: pwm_bcm2835 vchiq(C)
[  232.678481] CPU: 0 PID: 522 Comm: usb_test Tainted: G         C
     4.9.0-rc3+ #33
[  232.678486] Hardware name: BCM2835
[  232.678498] task: cab54e40 task.stack: c688c000
[  232.678520] PC is at __do_softirq+0x68/0x2a8
[  232.678538] LR is at irq_exit+0xb8/0x120
[  232.678552] pc : [<c01014d0>]    lr : [<c0121270>]    psr: 60000113
sp : c688da60  ip : c688daa8  fp : c688daa4
[  232.678560] r10: c0b7f800  r9 : c688c000  r8 : 00400000
[  232.678567] r7 : 0000000a  r6 : cb802400  r5 : 00000000  r4 : 00000001
[  232.678575] r3 : 00000000  r2 : 00000100  r1 : 00400000  r0 : 00000000
[  232.678585] Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment none
[  232.678593] Control: 00c5387d  Table: 068a4008  DAC: 00000051
[  232.678604] CPU: 0 PID: 522 Comm: usb_test Tainted: G         C
     4.9.0-rc3+ #33
[  232.678609] Hardware name: BCM2835
[  232.678667] [<c010ecc0>] (unwind_backtrace) from [<c010bc28>]
(show_stack+0x20/0x24)
[  232.678695] [<c010bc28>] (show_stack) from [<c03684e0>]
(dump_stack+0x20/0x28)
[  232.678718] [<c03684e0>] (dump_stack) from [<c0108ee4>] (show_regs+0x1c/0x20)
[  232.678752] [<c0108ee4>] (show_regs) from [<c018ea00>]
(watchdog_timer_fn+0x140/0x19c)
[  232.678779] [<c018ea00>] (watchdog_timer_fn) from [<c015eefc>]
(__hrtimer_run_queues.constprop.3+0xec/0x210)
[  232.678798] [<c015eefc>] (__hrtimer_run_queues.constprop.3) from [<c015f210>]
(hrtimer_interrupt+0xa4/0x1cc)
[  232.678827] [<c015f210>] (hrtimer_interrupt) from [<c04eff58>]
(bcm2835_time_interrupt+0x40/0x48)
[  232.678865] [<c04eff58>] (bcm2835_time_interrupt) from [<c01537ec>]
(__handle_irq_event_percpu+0x68/0x1b8)
[  232.678891] [<c01537ec>] (__handle_irq_event_percpu) from [<c0153968>]
(handle_irq_event_percpu+0x2c/0x68)
[  232.678915] [<c0153968>] (handle_irq_event_percpu) from [<c01539dc>]
(handle_irq_event+0x38/0x4c)
[  232.678939] [<c01539dc>] (handle_irq_event) from [<c0156df8>]
(handle_level_irq+0xc4/0xf8)
[  232.678960] [<c0156df8>] (handle_level_irq) from [<c0152fd8>]
(generic_handle_irq+0x28/0x38)
[  232.678983] [<c0152fd8>] (generic_handle_irq) from [<c0153144>]
(__handle_domain_irq+0x90/0xb8)
[  232.679004] [<c0153144>] (__handle_domain_irq) from [<c01013f4>]
(bcm2835_handle_irq+0x30/0x48)
[  232.679022] [<c01013f4>] (bcm2835_handle_irq) from [<c010c7cc>]
(__irq_svc+0x6c/0x90)
[  232.679031] Exception stack(0xc688da10 to 0xc688da58)
[  232.679044] da00:                                     00000000 00400000
00000100 00000000
[  232.679062] da20: 00000001 00000000 cb802400 0000000a 00400000 c688c000
c0b7f800 c688daa4
[  232.679078] da40: c688daa8 c688da60 c0121270 c01014d0 60000113 fffff000000
c687a300 c9374900 ca918b00 caff1200 c688db84
[  232.679235] db20: c688db28 c688db40 c04a1cf8 c049cb64 60000013 ffffffff
[  232.679272] [<c010c7cc>] (__irq_svc) from [<c049cb64>]
(_dwc2_hcd_urb_enqueue+0x414/0x560)
[  232.679302] [<c049cb64>] (_dwc2_hcd_urb_enqueue) from [<c04849ac>]
(usb_hcd_submit_urb+0x704/0x8c4)
[  232.679327] [<c04849ac>] (usb_hcd_submit_urb) from [<c048628c>]
(usb_submit_urb+0x438/0x4e0)
[  232.679358] [<c048628c>] (usb_submit_urb) from [<c04a9d60>]
(usb_serial_generic_submit_read_urb+0x50/0xc8)
[  232.679382] [<c04a9d60>] (usb_serial_generic_submit_read_urb) from
[<c04aa0a8>] (usb_serial_generic_submit_read_urbs+0x28/0x70)
[  232.679407] [<c04aa0a8>] (usb_serial_generic_submit_read_urbs) from
[<c04aa298>] (usb_serial_generic_open+0x44/0x4c)
[  232.679435] [<c04aa298>] (usb_serial_generic_open) from [<c04aebc4>]
(pl2303_open+0xc0/0xe0)
[  232.679458] [<c04aebc4>] (pl2303_open) from [<c04a744c>]
(serial_port_activate+0x54/0x8c)
[  232.679486] [<c04a744c>] (serial_port_activate) from [<c03c4014>]
(tty_port_open+0x84/0xd4)
[  232.679509] [<c03c4014>] (tty_port_open) from [<c04a7d40>]
(serial_open+0x34/0x5c)
[  232.679546] [<c04a7d40>] (serial_open) from [<c03bd3a8>]
(tty_open+0x380/0x534)
[  232.679578] [<c03bd3a8>] (tty_open) from [<c021e188>]
(chrdev_open+0x120/0x14c)
[  232.679612] [<c021e188>] (chrdev_open) from [<c0217368>]
(do_dentry_open+0x1b8/0x304)
[  232.679638] [<c0217368>] (do_dentry_open) from [<c021876c>]
(vfs_open+0x7c/0x80)
[  232.679663] [<c021876c>] (vfs_open) from [<c022834c>]
(path_openat+0xb60/0xd88)
[  232.679682] [<c022834c>] (path_openat) from [<c02285bc>]
(do_filp_open+0x48/0x94)
[  232.679704] [<c02285bc>] (do_filp_open) from [<c0218af4>]
(do_sys_open+0x12c/0x1cc)
[  232.679728] [<c0218af4>] (do_sys_open) from [<c0218bc4>] (SyS_open+0x30/0x34)
[  232.679754] [<c0218bc4>] (SyS_open) from [<c0108280>]
(ret_fast_syscall+0x0/0x3c)
[  233.852571] usb 1-1.2: clear tt 1 (9063) error -110
[  233.853046] usb 1-1.2.1: clear tt 1 (9073) error -110
[  234.892554] usb 1-1.2.1: clear tt 1 (9071) error -110
[  234.892995] usb 1-1.2: clear tt 1 (9061) error -110
[  235.932574] usb 1-1.2.1: clear tt 1 (9073) error -110
[  235.933542] usb 1-1.2: clear tt 1 (9063) error -110
[  236.972595] usb 1-1.2.1: clear tt 1 (9071) error -110
[  236.973235] usb 1-1.2: clear tt 1 (9061) error -110
[  238.012573] usb 1-1.2: clear tt 1 (9063) error -110
[  238.013052] usb 1-1.2.1: clear tt 1 (9073) error -110
[  238.013456] hub 1-1:1.0: hub_ext_port_status failed (err = -110)
[  239.052567] usb 1-1.2.1: clear tt 1 (9071) error -110
[  239.053076] usb 1-1.2: clear tt 1 (9061) error -110
[  240.092573] usb 1-1.2: clear tt 1 (9063) error -110
[  240.093050] usb 1-1.2.1: clear tt 1 (9073) error -110
[  240.239643] usb 1-1.2.1: USB disconnect, device number 5
[  240.239685] usb 1-1.2.1.2: USB disconnect, device number 7
[  240.262707] usb 1-1.2: clear tt 1 (9061) error -71
[  240.263123] usb 1-1.2.1: clear tt 1 (9071) error -71
[  240.263708] usb 1-1.2: USB disconnect, device number 4
[  694304] pl2303 ttyUSB0: pl2303 converter now disconnected from ttyUSB0
[  251.694645] pl2303 1-1.2.2:1.0: device disconnected
[  251.704668] usb 1-1.2.3: USB disconnect, device number 8
[  251.706468] pl2303 ttyUSB2: pl2303 converter now disconnected from ttyUSB2
[  251.706894] pl2303 1-1.2.3:1.0: device disconnected
[  251.714720] usb 1-1.2.4: USB disconnect, device number 10
[  251.733019] pl2303 ttyUSB4: pl2303 converter now disconnected from ttyUSB4
[  251.733459] pl2303 1-1.2.4:1.0: device disconnected
[  251.852767] hub 1-1.2:1.0: activate --> -19



More information about the linux-arm-kernel mailing list