Re: xhci DWC3 flavor problem

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

 



After a few moments the schedule problem happen again:

# INFO: task kworker/0:1:349 blocked for more than 120 seconds.
      Not tainted 4.6.0-rc5 #9
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
kworker/0:1     D ffffff8008086c60     0   349      2 0x00000000
Workqueue: usb_hub_wq hub_event
Call trace:
[<ffffff8008086c60>] __switch_to+0xc8/0xd4
[<ffffff8008638774>] __schedule+0x18c/0x5c8
[<ffffff8008638be8>] schedule+0x38/0x98
[<ffffff800863b71c>] schedule_timeout+0x160/0x1ac
[<ffffff8008639714>] wait_for_common+0xac/0x150
[<ffffff80086397cc>] wait_for_completion+0x14/0x1c
[<ffffff8008489998>] xhci_alloc_dev+0xf4/0x2a0
[<ffffff800844ffd0>] usb_alloc_dev+0x68/0x2cc
[<ffffff800845696c>] hub_event+0x784/0x11f4
[<ffffff80080ce444>] process_one_work+0x130/0x2f4
[<ffffff80080ce65c>] worker_thread+0x54/0x434
[<ffffff80080d40fc>] kthread+0xd4/0xe8
[<ffffff8008085e10>] ret_from_fork+0x10/0x40
INFO: task kworker/0:1:349 blocked for more than 120 seconds.
      Not tainted 4.6.0-rc5 #9
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
kworker/0:1     D ffffff8008086c60     0   349      2 0x00000000
Workqueue: usb_hub_wq hub_event
Call trace:
[<ffffff8008086c60>] __switch_to+0xc8/0xd4
[<ffffff8008638774>] __schedule+0x18c/0x5c8
[<ffffff8008638be8>] schedule+0x38/0x98
[<ffffff800863b71c>] schedule_timeout+0x160/0x1ac
[<ffffff8008639714>] wait_for_common+0xac/0x150
[<ffffff80086397cc>] wait_for_completion+0x14/0x1c
[<ffffff8008489998>] xhci_alloc_dev+0xf4/0x2a0
[<ffffff800844ffd0>] usb_alloc_dev+0x68/0x2cc
[<ffffff800845696c>] hub_event+0x784/0x11f4
[<ffffff80080ce444>] process_one_work+0x130/0x2f4
[<ffffff80080ce65c>] worker_thread+0x54/0x434
[<ffffff80080d40fc>] kthread+0xd4/0xe8
[<ffffff8008085e10>] ret_from_fork+0x10/0x40

So Chris' patch did not solve this problem either.

Thanks.

On 5/19/2016 4:39 PM, Joao Pinto wrote:
> Hi Felipe and Mathias,
> 
> On 5/19/2016 1:22 PM, Mathias Nyman wrote:
>> On 19.05.2016 14:23, Joao Pinto wrote:
>>> Hi Felipe,
>>>
>>> On 5/19/2016 11:32 AM, Felipe Balbi wrote:
>>>>
>>>> Hi,
>>>>
>>>>
>>>> Note that we really did get a command timeout. Can you add a little
>>>> extra debugging to try and figure out why that command failed?
>>>>
>>>
>>> After instrumenting and capturing FPGA signals, the driver could go a bit
>>> further... Could this be a FPGA timming issue?
>>>
>> ..
>>
>>> xhci-hcd xhci-hcd.0.auto: Timeout while waiting for setup device command
>>> usb 3-1: hub failed to enable device, error -62
>>> xhci-hcd xhci-hcd.0.auto: Endpoint 0x0 ep reset callback called
>>> xhci-hcd xhci-hcd.0.auto: xHCI dying or halted, can't queue_command
>>> xhci-hcd xhci-hcd.0.auto: FIXME: allocate a command ring segment
>>> usb usb3-port1: couldn't allocate usb_device
>>>
>>> Joao
>>
>> Does the patch from Chris Bainbridge help?
>> It's currently only Gregs tree in the usb-next branch.
>>
>> It fixes a locking issue where hw can't handle several ports being in default
>> state at
>> the same time, and setup device command timeout issue when both usb2 and usb3
>> devices
>> try to enumerate at the same time.
>>
>> commit feb26ac31a2a5cb88d86680d9a94916a6343e9e6
>>     usb: core: hub: hub_port_init lock controller instead of bus
> 
> Applied Chris' patch and apparently solved the cyclic crash problem that
> happened every time the wait completion timeout and context had to change. But
> the log after insert pen drive remains the same:
> 
> xhci-hcd xhci-hcd.0.auto: Port Status Change Event for port 1
> xhci-hcd xhci-hcd.0.auto: resume root hub
> xhci-hcd xhci-hcd.0.auto: handle_port_status: starting port polling.
> xhci-hcd xhci-hcd.0.auto: get port status, actual port 0 status  = 0x206e1
> xhci-hcd xhci-hcd.0.auto: Get port status returned 0x10101
> xhci-hcd xhci-hcd.0.auto: clear port connect change, actual port 0 status  = 0x6e1
> xhci-hcd xhci-hcd.0.auto: get port status, actual port 0 status  = 0x6e1
> xhci-hcd xhci-hcd.0.auto: Get port status returned 0x101
> xhci-hcd xhci-hcd.0.auto: xhci_hub_status_data: stopping port polling.
> xhci-hcd xhci-hcd.0.auto: // Ding dong!
> xhci-hcd xhci-hcd.0.auto: Command timeout
> xhci-hcd xhci-hcd.0.auto: Abort command ring
> 
> 
> It worked a bit a few hours ago like I tiold you in a past e-mail:
> After instrumenting and capturing FPGA signals, the driver could go a bit
> further... Could this be a FPGA timming issue?
> 
> 
> xhci-hcd xhci-hcd.0.auto: Port Status Change Event for port 1
> xhci-hcd xhci-hcd.0.auto: resume root hub
> xhci-hcd xhci-hcd.0.auto: handle_port_status: starting port polling.
> xhci-hcd xhci-hcd.0.auto: get port status, actual port 0 status  = 0x206e1
> xhci-hcd xhci-hcd.0.auto: Get port status returned 0x10101
> xhci-hcd xhci-hcd.0.auto: clear port connect change, actual port 0 status  = 0x6e1
> xhci-hcd xhci-hcd.0.auto: xhci_hub_status_data: stopping port polling.
> xhci-hcd xhci-hcd.0.auto: get port status, actual port 0 status  = 0x6e1
> xhci-hcd xhci-hcd.0.auto: Get port status returned 0x101
> xhci-hcd xhci-hcd.0.auto: xhci_hub_status_data: stopping port polling.
> xhci-hcd xhci-hcd.0.auto: // Ding dong!
> xhci-hcd xhci-hcd.0.auto: Slot 1 output ctx = 0x9f5d64000 (dma)
> xhci-hcd xhci-hcd.0.auto: Slot 1 input ctx = 0x9f5d68000 (dma)
> xhci-hcd xhci-hcd.0.auto: Set slot id 1 dcbaa entry ffffff800807c008 to 0x9f5d64000
> xhci-hcd xhci-hcd.0.auto: set port reset, actual port 0 status  = 0x6f1
> xhci-hcd xhci-hcd.0.auto: get port status, actual port 0 status  = 0x200e03
> xhci-hcd xhci-hcd.0.auto: Get port status returned 0x100503
> xhci-hcd xhci-hcd.0.auto: clear port reset change, actual port 0 status  = 0xe03
> usb 3-1: new high-speed USB device number 2 using xhci-hcd
> xhci-hcd xhci-hcd.0.auto: Set root hub portnum to 1
> xhci-hcd xhci-hcd.0.auto: Set fake root hub portnum to 1
> xhci-hcd xhci-hcd.0.auto: udev->tt =           (null)
> xhci-hcd xhci-hcd.0.auto: udev->ttport = 0x0
> xhci-hcd xhci-hcd.0.auto: Slot ID 1 Input Context:
> xhci-hcd xhci-hcd.0.auto: @ffffff8008acd000 (virt) @9f5d68000 (dma) 0x000000 -
> drop flags
> xhci-hcd xhci-hcd.0.auto: @ffffff8008acd004 (virt) @9f5d68004 (dma) 0x000003 -
> add flags
> xhci-hcd xhci-hcd.0.auto: @ffffff8008acd008 (virt) @9f5d68008 (dma) 0x000000 -
> rsvd2[0]
> xhci-hcd xhci-hcd.0.auto: @ffffff8008acd00c (virt) @9f5d6800c (dma) 0x000000 -
> rsvd2[1]
> xhci-hcd xhci-hcd.0.auto: @ffffff8008acd010 (virt) @9f5d68010 (dma) 0x000000 -
> rsvd2[2]
> xhci-hcd xhci-hcd.0.auto: @ffffff8008acd014 (virt) @9f5d68014 (dma) 0x000000 -
> rsvd2[3]
> xhci-hcd xhci-hcd.0.auto: @ffffff8008acd018 (virt) @9f5d68018 (dma) 0x000000 -
> rsvd2[4]
> xhci-hcd xhci-hcd.0.auto: @ffffff8008acd01c (virt) @9f5d6801c (dma) 0x000000 -
> rsvd2[5]
> xhci-hcd xhci-hcd.0.auto: @ffffff8008acd020 (virt) @9f5d68020 (dma) 0x000000 -
> rsvd64[0]
> xhci-hcd xhci-hcd.0.auto: @ffffff8008acd028 (virt) @9f5d68028 (dma) 0x000000 -
> rsvd64[1]
> xhci-hcd xhci-hcd.0.auto: @ffffff8008acd030 (virt) @9f5d68030 (dma) 0x000000 -
> rsvd64[2]
> xhci-hcd xhci-hcd.0.auto: @ffffff8008acd038 (virt) @9f5d68038 (dma) 0x000000 -
> rsvd64[3]
> xhci-hcd xhci-hcd.0.auto: Slot Context:
> xhci-hcd xhci-hcd.0.auto: @ffffff8008acd040 (virt) @9f5d68040 (dma) 0x8300000 -
> dev_info
> xhci-hcd xhci-hcd.0.auto: @ffffff8008acd044 (virt) @9f5d68044 (dma) 0x010000 -
> dev_info2
> xhci-hcd xhci-hcd.0.auto: @ffffff8008acd048 (virt) @9f5d68048 (dma) 0x000000 -
> tt_info
> xhci-hcd xhci-hcd.0.auto: @ffffff8008acd04c (virt) @9f5d6804c (dma) 0x000000 -
> dev_state
> xhci-hcd xhci-hcd.0.auto: @ffffff8008acd050 (virt) @9f5d68050 (dma) 0x000000 -
> rsvd[0]
> xhci-hcd xhci-hcd.0.auto: @ffffff8008acd054 (virt) @9f5d68054 (dma) 0x000000 -
> rsvd[1]
> xhci-hcd xhci-hcd.0.auto: @ffffff8008acd058 (virt) @9f5d68058 (dma) 0x000000 -
> rsvd[2]
> xhci-hcd xhci-hcd.0.auto: @ffffff8008acd05c (virt) @9f5d6805c (dma) 0x000000 -
> rsvd[3]
> xhci-hcd xhci-hcd.0.auto: @ffffff8008acd060 (virt) @9f5d68060 (dma) 0x000000 -
> rsvd64[0]
> xhci-hcd xhci-hcd.0.auto: @ffffff8008acd068 (virt) @9f5d68068 (dma) 0x000000 -
> rsvd64[1]
> xhci-hcd xhci-hcd.0.auto: @ffffff8008acd070 (virt) @9f5d68070 (dma) 0x000000 -
> rsvd64[2]
> xhci-hcd xhci-hcd.0.auto: @ffffff8008acd078 (virt) @9f5d68078 (dma) 0x000000 -
> rsvd64[3]
> xhci-hcd xhci-hcd.0.auto: IN Endpoint 00 Context (ep_index 00):
> xhci-hcd xhci-hcd.0.auto: @ffffff8008acd080 (virt) @9f5d68080 (dma) 0x000000 -
> ep_info
> xhci-hcd xhci-hcd.0.auto: @ffffff8008acd084 (virt) @9f5d68084 (dma) 0x400026 -
> ep_info2
> xhci-hcd xhci-hcd.0.auto: @ffffff8008acd088 (virt) @9f5d68088 (dma) 0x9f5d66001
> - deq
> xhci-hcd xhci-hcd.0.auto: @ffffff8008acd090 (virt) @9f5d68090 (dma) 0x000000 -
> tx_info
> xhci-hcd xhci-hcd.0.auto: @ffffff8008acd094 (virt) @9f5d68094 (dma) 0x000000 -
> rsvd[0]
> xhci-hcd xhci-hcd.0.auto: @ffffff8008acd098 (virt) @9f5d68098 (dma) 0x000000 -
> rsvd[1]
> xhci-hcd xhci-hcd.0.auto: @ffffff8008acd09c (virt) @9f5d6809c (dma) 0x000000 -
> rsvd[2]
> xhci-hcd xhci-hcd.0.auto: @ffffff8008acd0a0 (virt) @9f5d680a0 (dma) 0x000000 -
> rsvd64[0]
> xhci-hcd xhci-hcd.0.auto: @ffffff8008acd0a8 (virt) @9f5d680a8 (dma) 0x000000 -
> rsvd64[1]
> xhci-hcd xhci-hcd.0.auto: @ffffff8008acd0b0 (virt) @9f5d680b0 (dma) 0x000000 -
> rsvd64[2]
> xhci-hcd xhci-hcd.0.auto: @ffffff8008acd0b8 (virt) @9f5d680b8 (dma) 0x000000 -
> rsvd64[3]
> xhci-hcd xhci-hcd.0.auto: OUT Endpoint 01 Context (ep_index 01):
> xhci-hcd xhci-hcd.0.auto: @ffffff8008acd0c0 (virt) @9f5d680c0 (dma) 0x000000 -
> ep_info
> xhci-hcd xhci-hcd.0.auto: @ffffff8008acd0c4 (virt) @9f5d680c4 (dma) 0x000000 -
> ep_info2
> xhci-hcd xhci-hcd.0.auto: @ffffff8008acd0c8 (virt) @9f5d680c8 (dma) 0x000000 - deq
> xhci-hcd xhci-hcd.0.auto: @ffffff8008acd0d0 (virt) @9f5d680d0 (dma) 0x000000 -
> tx_info
> xhci-hcd xhci-hcd.0.auto: @ffffff8008acd0d4 (virt) @9f5d680d4 (dma) 0x000000 -
> rsvd[0]
> xhci-hcd xhci-hcd.0.auto: @ffffff8008acd0d8 (virt) @9f5d680d8 (dma) 0x000000 -
> rsvd[1]
> xhci-hcd xhci-hcd.0.auto: @ffffff8008acd0dc (virt) @9f5d680dc (dma) 0x000000 -
> rsvd[2]
> xhci-hcd xhci-hcd.0.auto: @ffffff8008acd0e0 (virt) @9f5d680e0 (dma) 0x000000 -
> rsvd64[0]
> xhci-hcd xhci-hcd.0.auto: @ffffff8008acd0e8 (virt) @9f5d680e8 (dma) 0x000000 -
> rsvd64[1]
> xhci-hcd xhci-hcd.0.auto: @ffffff8008acd0f0 (virt) @9f5d680f0 (dma) 0x000000 -
> rsvd64[2]
> xhci-hcd xhci-hcd.0.auto: @ffffff8008acd0f8 (virt) @9f5d680f8 (dma) 0x000000 -
> rsvd64[3]
> xhci-hcd xhci-hcd.0.auto: IN Endpoint 01 Context (ep_index 02):
> xhci-hcd xhci-hcd.0.auto: @ffffff8008acd100 (virt) @9f5d68100 (dma) 0x000000 -
> ep_info
> xhci-hcd xhci-hcd.0.auto: @ffffff8008acd104 (virt) @9f5d68104 (dma) 0x000000 -
> ep_info2
> xhci-hcd xhci-hcd.0.auto: @ffffff8008acd108 (virt) @9f5d68108 (dma) 0x000000 - deq
> xhci-hcd xhci-hcd.0.auto: @ffffff8008acd110 (virt) @9f5d68110 (dma) 0x000000 -
> tx_info
> xhci-hcd xhci-hcd.0.auto: @ffffff8008acd114 (virt) @9f5d68114 (dma) 0x000000 -
> rsvd[0]
> xhci-hcd xhci-hcd.0.auto: @ffffff8008acd118 (virt) @9f5d68118 (dma) 0x000000 -
> rsvd[1]
> xhci-hcd xhci-hcd.0.auto: @ffffff8008acd11c (virt) @9f5d6811c (dma) 0x000000 -
> rsvd[2]
> xhci-hcd xhci-hcd.0.auto: @ffffff8008acd120 (virt) @9f5d68120 (dma) 0x000000 -
> rsvd64[0]
> xhci-hcd xhci-hcd.0.auto: @ffffff8008acd128 (virt) @9f5d68128 (dma) 0x000000 -
> rsvd64[1]
> xhci-hcd xhci-hcd.0.auto: @ffffff8008acd130 (virt) @9f5d68130 (dma) 0x000000 -
> rsvd64[2]
> xhci-hcd xhci-hcd.0.auto: @ffffff8008acd138 (virt) @9f5d68138 (dma) 0x000000 -
> rsvd64[3]
> xhci-hcd xhci-hcd.0.auto: // Ding dong!
> xhci-hcd xhci-hcd.0.auto: Command timeout
> xhci-hcd xhci-hcd.0.auto: Abort command ring
> xhci-hcd xhci-hcd.0.auto: Stopped the command ring failed, maybe the host is dead
> xhci-hcd xhci-hcd.0.auto: // Halt the HC
> xhci-hcd xhci-hcd.0.auto: Host not halted after 16000 microseconds.
> xhci-hcd xhci-hcd.0.auto: Abort command ring failed
> xhci-hcd xhci-hcd.0.auto: HC died; cleaning up
> xhci-hcd xhci-hcd.0.auto: xHCI host controller is dead.
> xhci-hcd xhci-hcd.0.auto: Timeout while waiting for setup device command
> usb 3-1: hub failed to enable device, error -62
> xhci-hcd xhci-hcd.0.auto: Endpoint 0x0 ep reset callback called
> xhci-hcd xhci-hcd.0.auto: xHCI dying or halted, can't queue_command
> xhci-hcd xhci-hcd.0.auto: FIXME: allocate a command ring segment
> usb usb3-port1: couldn't allocate usb_device
> 
> Any thoughts?
> 
>>
>> -Mathias
>>
> 
> Thanks!
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux