Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

UsbTV kernel driver causes complete system freeze on Armbian OrangePi PC kernel 4.14 #11

Open
vbspam opened this issue Sep 9, 2018 · 1 comment

Comments

@vbspam
Copy link

vbspam commented Sep 9, 2018

UsbTV kernel driver causes complete system freeze on Armbian OrangePi PC kernel 4.14

How to reproduce:

  • Let's have a Allwinner H3 chip based single board computer (e.g. Orange PI PC )
  • Use most recent Armbian with kernel 4.14
  • Let's have UTV007 (Fushicai) based USB video grabber (e.g. this )
  • Use the kernel V4L2 driver 'usbtv' from the default kernel
  • Assume the UTV007 device is /dev/video0
  • Open the /dev/video0 in VLC (or any other tool using the V4L usbtv driver; actually it is enough to cat /dev/video0>/dev/null)

What happens:
The system becomes unresponsive and later freezes completely.
The following log is found in the /var/log/syslog:

[  491.108750] INFO: rcu_sched self-detected stall on CPU
[  491.109524]  2-...: (1 GPs behind) idle=b82/140000000000002/0 softirq=19961/19962 fqs=4050 
[  491.109601]   (t=21000 jiffies g=6765 c=6764 q=265)
[  491.110023] NMI backtrace for cpu 2
[  491.110328] CPU: 2 PID: 2077 Comm: kworker/2:0 Not tainted 4.14.65-sunxi #68
[  491.110464] Hardware name: Allwinner sun8i Family
[  491.110888] Workqueue: events dbs_work_handler
[  491.111689] [<c010dacd>] (unwind_backtrace) from [<c010a0b5>] (show_stack+0x11/0x14)
[  491.112147] [<c010a0b5>] (show_stack) from [<c086b7fd>] (dump_stack+0x69/0x78)
[  491.112612] [<c086b7fd>] (dump_stack) from [<c086f5ef>] (nmi_cpu_backtrace+0xd3/0xd4)
[  491.113015] [<c086f5ef>] (nmi_cpu_backtrace) from [<c086f67d>] (nmi_trigger_cpumask_backtrace+0x8d/0xc4)
[  491.113505] [<c086f67d>] (nmi_trigger_cpumask_backtrace) from [<c01663c5>] (rcu_dump_cpu_stacks+0x77/0x96)
[  491.113952] [<c01663c5>] (rcu_dump_cpu_stacks) from [<c0165b85>] (rcu_check_callbacks+0x4d5/0x690)
[  491.114476] [<c0165b85>] (rcu_check_callbacks) from [<c016a203>] (update_process_times+0x2b/0x48)
[  491.114974] [<c016a203>] (update_process_times) from [<c0178001>] (tick_sched_timer+0x31/0x68)
[  491.115425] [<c0178001>] (tick_sched_timer) from [<c016af8d>] (__hrtimer_run_queues+0xf5/0x224)
[  491.115812] [<c016af8d>] (__hrtimer_run_queues) from [<c016b289>] (hrtimer_interrupt+0x81/0x180)
[  491.116293] [<c016b289>] (hrtimer_interrupt) from [<c074aae1>] (arch_timer_handler_phys+0x25/0x28)
[  491.116793] [<c074aae1>] (arch_timer_handler_phys) from [<c015d637>] (handle_percpu_devid_irq+0x57/0x19c)
[  491.117282] [<c015d637>] (handle_percpu_devid_irq) from [<c0159b4d>] (generic_handle_irq+0x1d/0x28)
[  491.117795] [<c0159b4d>] (generic_handle_irq) from [<c0159f5d>] (__handle_domain_irq+0x45/0x84)
[  491.118243] [<c0159f5d>] (__handle_domain_irq) from [<c01013b5>] (gic_handle_irq+0x39/0x68)
[  491.118619] [<c01013b5>] (gic_handle_irq) from [<c010a9e5>] (__irq_svc+0x65/0x94)
[  491.118786] Exception stack(0xee5a5c70 to 0xee5a5cb8)
[  491.119081] 5c60:                                     00000000 40070193 9cb0c842 9cb0c842
[  491.119463] 5c80: c9c45900 60070113 00000000 00000000 c987acdc c0d03f48 c0d02080 4000001f
[  491.119771] 5ca0: 2ea10000 ee5a5cc0 c06cd097 c06b8fee 60070133 ffffffff
[  491.120267] [<c010a9e5>] (__irq_svc) from [<c06b8fee>] (__usb_hcd_giveback_urb+0x5a/0xc0)
[  491.120731] [<c06b8fee>] (__usb_hcd_giveback_urb) from [<c06b90cb>] (usb_giveback_urb_bh+0x77/0xb8)
[  491.121242] [<c06b90cb>] (usb_giveback_urb_bh) from [<c011f231>] (tasklet_hi_action+0x3d/0x9c)
[  491.121695] [<c011f231>] (tasklet_hi_action) from [<c01014a1>] (__do_softirq+0xb9/0x25c)
[  491.122104] [<c01014a1>] (__do_softirq) from [<c011ef01>] (irq_exit+0x99/0xf0)
[  491.122577] [<c011ef01>] (irq_exit) from [<c0159f61>] (__handle_domain_irq+0x49/0x84)
[  491.122994] [<c0159f61>] (__handle_domain_irq) from [<c01013b5>] (gic_handle_irq+0x39/0x68)
[  491.123362] [<c01013b5>] (gic_handle_irq) from [<c010a9e5>] (__irq_svc+0x65/0x94)
[  491.123535] Exception stack(0xee5a5db0 to 0xee5a5df8)
[  491.123793] 5da0:                                     00000000 00000000 9cb0c842 c05ccd11
[  491.124174] 5dc0: ef003480 00000000 016e3600 1c9c3800 ffffe000 c9cf6100 ef003300 c0d03f6c
[  491.124481] 5de0: 00000078 ee5a5e00 c016aa75 c05c57d2 60070033 ffffffff
[  491.124946] [<c010a9e5>] (__irq_svc) from [<c05c57d2>] (clk_change_rate+0xa6/0x2b0)
[  491.125474] [<c05c57d2>] (clk_change_rate) from [<c05c5c37>] (clk_core_set_rate_nolock+0x3f/0x68)
[  491.125942] [<c05c5c37>] (clk_core_set_rate_nolock) from [<c05c5c7b>] (clk_set_rate+0x1b/0x24)
[  491.126489] [<c05c5c7b>] (clk_set_rate) from [<c063b3b3>] (dev_pm_opp_set_rate+0x12f/0x28c)
[  491.127065] [<c063b3b3>] (dev_pm_opp_set_rate) from [<c0731fdb>] (__cpufreq_driver_target+0x123/0x364)
[  491.127511] [<c0731fdb>] (__cpufreq_driver_target) from [<c073500b>] (od_dbs_update+0x8f/0x108)
[  491.127885] [<c073500b>] (od_dbs_update) from [<c0735871>] (dbs_work_handler+0x29/0x50)
[  491.128334] [<c0735871>] (dbs_work_handler) from [<c012d4d1>] (process_one_work+0x155/0x37c)
[  491.128760] [<c012d4d1>] (process_one_work) from [<c012e073>] (worker_thread+0xff/0x408)
[  491.129213] [<c012e073>] (worker_thread) from [<c0131b3d>] (kthread+0xfd/0x104)
[  491.129699] [<c0131b3d>] (kthread) from [<c01066f9>] (ret_from_fork+0x11/0x38)
[  491.132532] hrtimer: interrupt took 24317996 ns
[  499.171529] usbtv 4-1:1.0: Could not resubmit ISO URB
[  499.336672] usbtv 4-1:1.0: Could not resubmit ISO URB
[  499.438560] usbtv 4-1:1.0: Could not resubmit ISO URB
[  499.463659] usbtv 4-1:1.0: Could not resubmit ISO URB
[  499.484783] usbtv 4-1:1.0: Could not resubmit ISO URB
[  499.504574] usbtv 4-1:1.0: Could not resubmit ISO URB
[  499.522563] usbtv 4-1:1.0: Could not resubmit ISO URB
[  499.538389] usbtv 4-1:1.0: Could not resubmit ISO URB
[  499.552215] usbtv 4-1:1.0: Could not resubmit ISO URB
[  499.564230] usbtv 4-1:1.0: Could not resubmit ISO URB
[  499.575130] usbtv 4-1:1.0: Could not resubmit ISO URB
[  499.583608] usbtv 4-1:1.0: Could not resubmit ISO URB
[  499.592606] usbtv 4-1:1.0: Could not resubmit ISO URB
[  499.604653] usbtv 4-1:1.0: Could not resubmit ISO URB

The process using the /dev/video0 starts to eat all system resources 390%load (on 4 cpu system) before the log message appears.

What is expected:
The system should process the video with average load approx 30% (tested with other USB grabbers and USB cameras).

System info

  • uname -a
    Linux orangepipc 4.14.65-sunxi #68 SMP Tue Aug 21 19:57:06 CEST 2018 armv7l armv7l armv7l GNU/Linux
  • cat /proc/cpuinfo
processor       : 0
model name      : ARMv7 Processor rev 5 (v7l)
BogoMIPS        : 61.71
Features        : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm 
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xc07
CPU revision    : 5

processor       : 1
model name      : ARMv7 Processor rev 5 (v7l)
BogoMIPS        : 61.71
Features        : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm 
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xc07
CPU revision    : 5

processor       : 2
model name      : ARMv7 Processor rev 5 (v7l)
BogoMIPS        : 61.71
Features        : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm 
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xc07
CPU revision    : 5

processor       : 3
model name      : ARMv7 Processor rev 5 (v7l)
BogoMIPS        : 61.71
Features        : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm 
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xc07
CPU revision    : 5

Hardware        : Allwinner sun8i Family
Revision        : 0000
Serial          : 02c0008179908356
  • lsusb
Bus 008 Device 002: ID 1bcf:05cf Sunplus Innovation Technology Inc. Micro keyboard & mouse receiver
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 005: ID 1b71:3002 Fushicai USBTV007 Video Grabber [EasyCAP]
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 002: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 009 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
  • modinfo usbtv
filename:       /lib/modules/4.14.65-sunxi/kernel/drivers/media/usb/usbtv/usbtv.ko
license:        Dual BSD/GPL
description:    Fushicai USBTV007 Audio-Video Grabber Driver
author:         Lubomir Rintel, Federico Simoncelli
alias:          usb:v1F71p3301d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v1B71p3002d*dc*dsc*dp*ic*isc*ip*in*
depends:        videobuf2-v4l2,snd-pcm,videobuf2-vmalloc,videobuf2-core,snd
intree:         Y
name:           usbtv
vermagic:       4.14.65-sunxi SMP mod_unload ARMv7 thumb2 p2v8 
  • dmesg after inserting the USB video grabber
[ 4993.686404] usb 4-1: New USB device found, idVendor=1b71, idProduct=3002
[ 4993.686424] usb 4-1: New USB device strings: Mfr=3, Product=4, SerialNumber=2
[ 4993.686435] usb 4-1: Product: usbtv007
[ 4993.686446] usb 4-1: Manufacturer: fushicai
[ 4993.686458] usb 4-1: SerialNumber: 300000000002
[ 4993.689798] usbtv 4-1:1.0: Fushicai USBTV007 Audio-Video Grabber

Should this be wrong place to report such bug, please let me know.
I also opened discussion topic at the Armbian forum

@simon3z
Copy link
Owner

simon3z commented Sep 10, 2018

Should this be wrong place to report such bug, please let me know.

The driver is now in the main kernel tree so bug reports should go to https://bugzilla.kernel.org

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants