Good morning,
we have a custom board base on imx6 Dual Core kernel 3.14.28 yocto Fido 1.8. We try to implement a system for two video camera visualization. For video capture we use two ADV7180 chip.
We have different kernel Ooops after some hours (12+) of video reproduction. We try to use different solution like using gstreamer 0.10 or gstreamer 1.0. We try imx gstreamer plugin and without imx gstreamer plugin. We also try diffrent pipe like
gst-launch-0.10 tvsrc ! mfw_isnk
gst-launch-0.10 tvsrc ! imxv4l2sink
also we try with gstreamer-1.0 with pipe like
gst-launch-1.0 imxv4l2src ! imxv4l2sink
gst-launch-1.0 imxv4l2src ! v4l2sink
gst-launch-1.0 imxv4l2src ! imxg2dvideosink
We also try to stream over network with different protocols like TCP udP TRP RTSP.
Despite of every kind of pipe, src and sink after some hours system crash with a kernel Ooops like that
Unable to handle kernel paging request at virtual address 0004a610
pgd = 869d0000
[0004a610] *pgd=16a33831, *pte=00000000, *ppte=00000000
Internal error: Oops: 80000007 [#1] PREEMPT SMP ARM
Modules linked in:
CPU: 0 PID: 431 Comm: source0:src Not tainted 3.14.28-1.0.0_ga+gb91b57e #46
task: 8666cd80 ti: 86e5c000 task.ti: 86e5c000
PC is at 0x4a610
LR is at twd_handler+0x30/0x38
pc : [<0004a610>] lr : [<800143a8>] psr: 200b0193
sp : 86e5df60 ip : 0adb0000 fp : 71f0094c
r10: 00000000 r9 : ffffffff r8 : 0000001d
r7 : 8602d840 r6 : 80da3d80 r5 : 86007600 r4 : 00000001
r3 : 0004a610 r2 : 00a9e978 r1 : 8bb366c0 r0 : 8bb366c0
Flags: nzCv IRQs off FIQs on Mode SVC_32 ISA ARM Segment user
Control: 10c53c7d Table: 169d004a DAC: 00000015
Process source0:src (pid: 431, stack limit = 0x86e5c238)
Stack: (0x86e5df60 to 0x86e5e000)
df60: 8bb366c0 8006a668 0000001d 0000001d 00000000 f4a00100 ffffffff 80066cd8
df80: 80d82e54 8000ed4c f4a0010c 80d8e970 86e5dfb0 8000856c 71f00880 76bfd2ac
dfa0: 200b0010 ffffffff 71f00880 8001237c 71f00880 00000002 ffffffff 00000000
dfc0: ffffffff ffffffff 00000002 71f00880 ffffffff ffffffff 00000000 71f0094c
dfe0: 00000001 71f0086c 76924114 76bfd2ac 200b0010 ffffffff 00000000 00000000
[<800143a8>] (twd_handler) from [<8006a668>] (handle_percpu_devid_irq+0x6c/0x84)
[<8006a668>] (handle_percpu_devid_irq) from [<80066cd8>] (generic_handle_irq+0x2 c/0x3c)
[<80066cd8>] (generic_handle_irq) from [<8000ed4c>] (handle_IRQ+0x40/0x90)
[<8000ed4c>] (handle_IRQ) from [<8000856c>] (gic_handle_irq+0x2c/0x5c)
[<8000856c>] (gic_handle_irq) from [<8001237c>] (__irq_usr+0x3c/0x60)
Exception stack(0x86e5dfb0 to 0x86e5dff8)
dfa0: 71f00880 00000002 ffffffff 00000000
dfc0: ffffffff ffffffff 00000002 71f00880 ffffffff ffffffff 00000000 71f0094c
dfe0: 00000001 71f0086c 76924114 76bfd2ac 200b0010 ffffffff
Code: bad PC value
---[ end trace abc4263b18ce6fc5 ]---
Kernel panic - not syncing: Fatal exception in interrupt
CPU1: stopping
CPU: 1 PID: 0 Comm: swapper/1 Tainted: G D 3.14.28-1.0.0_ga+gb91b57e # 46
[<800149d0>] (unwind_backtrace) from [<800116d4>] (show_stack+0x10/0x14)
[<800116d4>] (show_stack) from [<806e91c4>] (dump_stack+0x7c/0xbc)
[<806e91c4>] (dump_stack) from [<80013970>] (handle_IPI+0x144/0x158)
[<80013970>] (handle_IPI) from [<80008598>] (gic_handle_irq+0x58/0x5c)
[<80008598>] (gic_handle_irq) from [<800121c0>] (__irq_svc+0x40/0x70)
Exception stack(0x860bff50 to 0x860bff98)
ff40: 860bff98 3b9aca00 a520e1a5 0000256c
ff60: 80d94308 80d94308 8bb3b0d0 00000000 a1d95142 0000256c 860be000 00000000
ff80: 00000017 860bff98 00000009 804a3490 000f0013 ffffffff
[<800121c0>] (__irq_svc) from [<804a3490>] (cpuidle_enter_state+0x54/0xe4)
[<804a3490>] (cpuidle_enter_state) from [<804a35d4>] (cpuidle_idle_call+0xb4/0x1 4c)
[<804a35d4>] (cpuidle_idle_call) from [<8000f07c>] (arch_cpu_idle+0x8/0x44)
[<8000f07c>] (arch_cpu_idle) from [<80066c50>] (cpu_startup_entry+0x100/0x14c)
[<80066c50>] (cpu_startup_entry) from [<10008624>] (0x10008624)
Did somebidy knows why we have this kind of behaviour ?
Is a problem of gstreamer or of the system itself (kernel 3.14.28 ?).
We try to adopt every kind of solution like drop memory cash , change CMA size and other stuff but nothing change
Can somebody help us ?
Thanks
Hi Igor,
we finaly end our test and we find that memeory Ooops was caused by hardware problem on our specific hardware . We think problem was related to NAND onthe SODIMM module.
After changing and checking harware we have no more problem gstreamer pipe now run for 4 weeks consecutevely without any kind of problem.
Thanks again for youe help
Hi Matteo
kernel Ooops may be due to ddr errors so one can test memory and rebuild
image with new calibration settings
https://community.nxp.com/docs/DOC-105652
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hi Igor,
thanks for quick answer i will calibrate DDR and let you know if problem is solved.
Many thanks