USB 3.0 port unstable on Jetson TK1?

I have been testing USB3 (UVC) camera on Jetson TK1. I have seen the problem when streaming from usb3 and encoding on it (h264/vp8) being used simultaneously. For example, when I plugged a Logitech C920 into the USB3.0 port of Jetson TK1 and ran gstreamer with live camera feed along with encoding, the TK1 would usually hang within 1~2 hours (see below log for more info). If I ran the same gstreamer pipeline with a video file input, the TK1 could work overnight without problem.

Log message:
[60654.282051] Host read timeout at address 4300
[60654.285137] MSELECT error detected! status=0x3
[60654.285154] ------------[ cut here ]------------
[60654.285156] kernel BUG at drivers/platform/tegra/hier_ictlr/hier_ictlr.c:54!
[60654.285158] Internal error: Oops - BUG: 0 [#1] PREEMPT SMP ARM
[60654.285169] Modules linked in: dm_crypt dm_mod rfcomm bnep bluetooth rfkill nvhost_vi
[60654.285173] CPU: 0 PID: 3660 Comm: kworker/0:1 Tainted: G W 3.10.40-g868897a #1
[60654.285182] Workqueue: host_syncpt syncpt_thresh_cascade_fn
[60654.285184] task: d2e35080 ti: cfe3c000 task.ti: cfe3c000
[60654.285189] PC is at tegra_hier_ictlr_irq_handler+0x38/0x40
[60654.285192] LR is at tegra_hier_ictlr_irq_handler+0x38/0x40
[60654.285194] pc : [] lr : [] psr: 60030193
[60654.285194] sp : cfe3dc38 ip : 00000000 fp : c0d0a198
[60654.285196] r10: 00000000 r9 : 00000000 r8 : cfe3c000
[60654.285198] r7 : cfe3dcd8 r6 : 0000009f r5 : c0bcb910 r4 : d70ca780
[60654.285199] r3 : 00000000 r2 : 00010100 r1 : 00000000 r0 : 00000023
[60654.285202] Flags: nZCv IRQs off FIQs on Mode SVC_32 ISA ARM Segment kernel
[60654.285204] Control: 10c5387d Table: 8f99006a DAC: 00000015

Additional info:

  1. Jetson TK1 version: R21.4
  2. USB auto suspend: disabled (-1)
  3. Running in performance mode
  4. USB firmware (downloaded from this link):

Has anyone experienced a similar problem ?

With the C920 connected, what is the output of “lsusb -t”? Also, when using the C920, what was the exact command used to trigger the bug? Regarding the firmware download, what instructions were used to add the firmware? What is the content of “/proc/cmdline”?

Hello, Dhinesh:
That log shows an internal module read/write timeout error. But the address seems unreasonable so I’m not sure which module goes wrong. Or the memory is corrupted.

Would you please do more test?

  1. Test C920 by preview-only GST pipeline for long time and check whether the issue comes.
  2. Use another USB 3.0 HDD to do read-stress test and check whether the issue comes.
  3. If the error happens, please check the log ‘Host read/write timeout at address’ and it always shows the same address (4300) or variable values?

BTW: for the USB firmware, would you please paste the thread URL?