<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>i.MX ProcessorsのトピックRe: i.MX6Q Concurrent Capture Kernel Oops</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/i-MX6Q-Concurrent-Capture-Kernel-Oops/m-p/367378#M52280</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks Igor,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I will give these fixes a try and let you know.&amp;nbsp; To confirm, the patches I will try to apply are:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;0001-ENGR00276652-ARM-mx6-Use-IOMUXC-irq-instead-of-125.patch&lt;/P&gt;&lt;P&gt;0009-ARM-imx-return-zero-in-case-next-event-gets-a-large-.patch&lt;/P&gt;&lt;P&gt;0010-ENGR00295714-GPT-Status-register-bits-are-cleared-in.patch&lt;/P&gt;&lt;P&gt;0020-ENGR00300417-MX6SL-Add-100M-and-24M-MMDC-parameters-.patch&lt;/P&gt;&lt;P&gt;0021-ENGR00267929-MX6SL-Add-DDR3-support-for-MX6SL.patch&lt;/P&gt;&lt;P&gt;0034-ENGR00316182-imx6x-Fix-bugs-in-clock-and-cpufreq-cod.patch&lt;/P&gt;&lt;P&gt;0035-ENGR00316180-iMX6x-Support-IRAM-page-table-when-DDR-.patch&lt;/P&gt;&lt;P&gt;0037-ENGR00320182-iMX6DQ-iMX6DL-Fix-bug-in-DLL-off-mode-c.patch&lt;/P&gt;&lt;P&gt;0063-ENGR00331050-imx6qdl-Fix-the-workaround-for-ERR00577.patch&lt;/P&gt;&lt;P&gt;0068-ENGR00331611-imx6x-Set-SCU-CPU-Power-status-register.patch&lt;/P&gt;&lt;P&gt;0069-ENGR00327364-imx6x-Ensure-that-the-bandgap-self-bias.patch&lt;/P&gt;&lt;P&gt;0070-ENGR00334447-imx6qdl-Fix-random-failures-caused-by-d.patch&lt;/P&gt;&lt;P&gt;0071-MLK-9663-imx6x-Fix-the-DDR-self-refresh-entry-proced.patch&lt;/P&gt;&lt;P&gt;0072-MLK-9664-imx6x-Remove-unused-commented-code.patch&lt;/P&gt;&lt;P&gt;0075-MLK-9685-ARM-imx6x-Ensure-that-the-kernel-can-boot-w.patch&lt;/P&gt;&lt;P&gt;0076-MLK-9698-ARM-imx6x-Fix-build-break-when-CONFIG_SMP-i.patch&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am using the Variscite fork of the kernel with many patches of our own, so I will have to apply these patches carefully.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best,&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Dave&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 07 Nov 2014 23:09:50 GMT</pubDate>
    <dc:creator>davemcmordie</dc:creator>
    <dc:date>2014-11-07T23:09:50Z</dc:date>
    <item>
      <title>i.MX6Q Concurrent Capture Kernel Oops</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/i-MX6Q-Concurrent-Capture-Kernel-Oops/m-p/367376#M52278</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;We have a product based on using a Greyscale and a Bayer sensor (the first on CSI0, the second on a MIPI channel).&amp;nbsp; The system is based on 3.0.35, with extensive changes to enable greyscale and bayer capture, reserved kernel memory for capture and to fix a bug in the MIPI channel handling which assumed that the MIPI capture channel was always zero.&amp;nbsp; The changes are in a set of patches attached in another thread (&lt;A href="https://community.nxp.com/message/348842" rel="noopener noreferrer" target="_blank"&gt;Re: i.MX6 OV5647 Bayer sensor driver (ERROR: v4l2 capture: mxc_v4l_dqueue timeout enc_counter 0)&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The system works pretty well.&amp;nbsp; However, we are occasionally (rarely) seeing a kernel oops in mxc_v4l2_capture mxc_v4l_dqueue:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="_jivemacro_uid_141469399323712 jive_text_macro jive_macro_code" jivemacro_uid="_141469399323712" modifiedtitle="true"&gt;
&lt;P&gt;BUG: soft lockup - CPU#2 stuck for 22s! [app:31294]&lt;/P&gt;
&lt;P&gt;Modules linked in: ppp_deflate bsd_comp ppp_async crc_ccitt ppp_generic slhc tun bma250 mxc_v4l2_capture ipu_fg_overlay_sdc ipu_csi_enc ipu_prp_enc ipu_still ipu_bg_overlay_sdc option usb_wwan wl12xx_sdio usbserial mt9m031_camera ov5647_camera_mipi camera_sensor_clock&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Pid: 31294, comm:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; app&lt;/P&gt;
&lt;P&gt;CPU: 2&amp;nbsp;&amp;nbsp;&amp;nbsp; Not tainted&amp;nbsp; (3.0.35+ #107)&lt;/P&gt;
&lt;P&gt;PC is at __raw_spin_lock_irqsave+0x84/0xa0&lt;/P&gt;
&lt;P&gt;LR is at __raw_spin_lock_irqsave+0x54/0xa0&lt;/P&gt;
&lt;P&gt;pc : [&amp;lt;805ae3cc&amp;gt;]&amp;nbsp;&amp;nbsp;&amp;nbsp; lr : [&amp;lt;805ae39c&amp;gt;]&amp;nbsp;&amp;nbsp;&amp;nbsp; psr: 200f0013&lt;/P&gt;
&lt;P&gt;sp : a2603948&amp;nbsp; ip : 00000001&amp;nbsp; fp : 00000002&lt;/P&gt;
&lt;P&gt;r10: 00000000&amp;nbsp; r9 : bfcc0800&amp;nbsp; r8 : 00000017&lt;/P&gt;
&lt;P&gt;r7 : 00000001&amp;nbsp; r6 : a2602000&amp;nbsp; r5 : 00000001&amp;nbsp; r4 : 80c883a8&lt;/P&gt;
&lt;P&gt;r3 : 00000001&amp;nbsp; r2 : 00000000&amp;nbsp; r1 : 00000000&amp;nbsp; r0 : 00000001&lt;/P&gt;
&lt;P&gt;Flags: nzCv&amp;nbsp; IRQs on&amp;nbsp; FIQs on&amp;nbsp; Mode SVC_32&amp;nbsp; ISA ARM&amp;nbsp; Segment user&lt;/P&gt;
&lt;P&gt;Control: 10c53c7d&amp;nbsp; Table: 3330004a&amp;nbsp; DAC: 00000015&lt;/P&gt;
&lt;P&gt;Kernel panic - not syncing: softlockup: hung tasks&lt;/P&gt;
&lt;P&gt;[&amp;lt;8004f038&amp;gt;] (unwind_backtrace+0x0/0xf8) from [&amp;lt;805a608c&amp;gt;] (panic+0x64/0x184)&lt;/P&gt;
&lt;P&gt;[&amp;lt;805a608c&amp;gt;] (panic+0x64/0x184) from [&amp;lt;800b7d20&amp;gt;] (watchdog_timer_fn+0x178/0x194)&lt;/P&gt;
&lt;P&gt;[&amp;lt;800b7d20&amp;gt;] (watchdog_timer_fn+0x178/0x194) from [&amp;lt;8009e2c4&amp;gt;] (__run_hrtimer.isra.19+0x44/0xd8)&lt;/P&gt;
&lt;P&gt;[&amp;lt;8009e2c4&amp;gt;] (__run_hrtimer.isra.19+0x44/0xd8) from [&amp;lt;8009ec44&amp;gt;] (hrtimer_interrupt+0xf8/0x274)&lt;/P&gt;
&lt;P&gt;[&amp;lt;8009ec44&amp;gt;] (hrtimer_interrupt+0xf8/0x274) from [&amp;lt;8004da24&amp;gt;] (ipi_timer+0x28/0x2c)&lt;/P&gt;
&lt;P&gt;[&amp;lt;8004da24&amp;gt;] (ipi_timer+0x28/0x2c) from [&amp;lt;800421a0&amp;gt;] (do_local_timer+0x5c/0x7c)&lt;/P&gt;
&lt;P&gt;[&amp;lt;800421a0&amp;gt;] (do_local_timer+0x5c/0x7c) from [&amp;lt;800478cc&amp;gt;] (__irq_svc+0x4c/0xe8)&lt;/P&gt;
&lt;P&gt;Exception stack(0xa2603900 to 0xa2603948)&lt;/P&gt;
&lt;P&gt;3900: 00000001 00000000 00000000 00000001 80c883a8 00000001 a2602000 00000001&lt;/P&gt;
&lt;P&gt;3920: 00000017 bfcc0800 00000000 00000002 00000001 a2603948 805ae39c 805ae3cc&lt;/P&gt;
&lt;P&gt;3940: 200f0013 ffffffff&lt;/P&gt;
&lt;P&gt;[&amp;lt;800478cc&amp;gt;] (__irq_svc+0x4c/0xe8) from [&amp;lt;805ae3cc&amp;gt;] (__raw_spin_lock_irqsave+0x84/0xa0)&lt;/P&gt;
&lt;P&gt;[&amp;lt;805ae3cc&amp;gt;] (__raw_spin_lock_irqsave+0x84/0xa0) from [&amp;lt;803f0c28&amp;gt;] (ipu_clear_irq+0x24/0x8c)&lt;/P&gt;
&lt;P&gt;[&amp;lt;803f0c28&amp;gt;] (ipu_clear_irq+0x24/0x8c) from [&amp;lt;8028e074&amp;gt;] (mxcfb_pan_display+0x324/0x530)&lt;/P&gt;
&lt;P&gt;[&amp;lt;8028e074&amp;gt;] (mxcfb_pan_display+0x324/0x530) from [&amp;lt;80274ed0&amp;gt;] (fb_pan_display+0xbc/0x13c)&lt;/P&gt;
&lt;P&gt;[&amp;lt;80274ed0&amp;gt;] (fb_pan_display+0xbc/0x13c) from [&amp;lt;80281f84&amp;gt;] (bit_update_start+0x14/0x30)&lt;/P&gt;
&lt;P&gt;[&amp;lt;80281f84&amp;gt;] (bit_update_start+0x14/0x30) from [&amp;lt;8027f8e4&amp;gt;] (fbcon_switch+0x2a4/0x4a8)&lt;/P&gt;
&lt;P&gt;[&amp;lt;8027f8e4&amp;gt;] (fbcon_switch+0x2a4/0x4a8) from [&amp;lt;802b1ff8&amp;gt;] (redraw_screen+0x14c/0x244)&lt;/P&gt;
&lt;P&gt;[&amp;lt;802b1ff8&amp;gt;] (redraw_screen+0x14c/0x244) from [&amp;lt;8027ef3c&amp;gt;] (fbcon_blank+0x1b4/0x258)&lt;/P&gt;
&lt;P&gt;[&amp;lt;8027ef3c&amp;gt;] (fbcon_blank+0x1b4/0x258) from [&amp;lt;802b3604&amp;gt;] (do_unblank_screen+0x94/0x17c)&lt;/P&gt;
&lt;P&gt;[&amp;lt;802b3604&amp;gt;] (do_unblank_screen+0x94/0x17c) from [&amp;lt;802568b0&amp;gt;] (bust_spinlocks+0x24/0x4c)&lt;/P&gt;
&lt;P&gt;[&amp;lt;802568b0&amp;gt;] (bust_spinlocks+0x24/0x4c) from [&amp;lt;8004b440&amp;gt;] (die+0xa8/0x294)&lt;/P&gt;
&lt;P&gt;[&amp;lt;8004b440&amp;gt;] (die+0xa8/0x294) from [&amp;lt;805a543c&amp;gt;] (__do_kernel_fault.part.3+0x54/0x74)&lt;/P&gt;
&lt;P&gt;[&amp;lt;805a543c&amp;gt;] (__do_kernel_fault.part.3+0x54/0x74) from [&amp;lt;80052d28&amp;gt;] (do_page_fault+0x2b4/0x31c)&lt;/P&gt;
&lt;P&gt;[&amp;lt;80052d28&amp;gt;] (do_page_fault+0x2b4/0x31c) from [&amp;lt;80042338&amp;gt;] (do_DataAbort+0x34/0x9c)&lt;/P&gt;
&lt;P&gt;[&amp;lt;80042338&amp;gt;] (do_DataAbort+0x34/0x9c) from [&amp;lt;80047850&amp;gt;] (__dabt_svc+0x70/0xa0)&lt;/P&gt;
&lt;P&gt;Exception stack(0xa2603da0 to 0xa2603de8)&lt;/P&gt;
&lt;P&gt;3da0: ba65c06c 73bbef20 00000068 a2603e5c a2603e48 00000000 ba65c000 ba65c008&lt;/P&gt;
&lt;P&gt;3dc0: ba65c088 ba65c06c 600f0013 b9912140 7f1198d8 a2603de8 8007a3e0 7f11a760&lt;/P&gt;
&lt;P&gt;3de0: 200f0093 ffffffff&lt;/P&gt;
&lt;P&gt;[&amp;lt;80047850&amp;gt;] (__dabt_svc+0x70/0xa0) from [&amp;lt;7f11a760&amp;gt;] (mxc_v4l_do_ioctl+0xe88/0x2260 [mxc_v4l2_capture])&lt;/P&gt;
&lt;P&gt;[&amp;lt;7f11a760&amp;gt;] (mxc_v4l_do_ioctl+0xe88/0x2260 [mxc_v4l2_capture]) from [&amp;lt;803ba970&amp;gt;] (video_usercopy+0x98/0x4cc)&lt;/P&gt;
&lt;P&gt;[&amp;lt;803ba970&amp;gt;] (video_usercopy+0x98/0x4cc) from [&amp;lt;803b9f0c&amp;gt;] (v4l2_ioctl+0x11c/0x138)&lt;/P&gt;
&lt;P&gt;[&amp;lt;803b9f0c&amp;gt;] (v4l2_ioctl+0x11c/0x138) from [&amp;lt;8010e4d4&amp;gt;] (do_vfs_ioctl+0x80/0x54c)&lt;/P&gt;
&lt;P&gt;[&amp;lt;8010e4d4&amp;gt;] (do_vfs_ioctl+0x80/0x54c) from [&amp;lt;8010e9d8&amp;gt;] (sys_ioctl+0x38/0x5c)&lt;/P&gt;
&lt;P&gt;[&amp;lt;8010e9d8&amp;gt;] (sys_ioctl+0x38/0x5c) from [&amp;lt;80047e80&amp;gt;] (ret_fast_syscall+0x0/0x30)&lt;/P&gt;
&lt;P&gt;CPU3: stopping&lt;/P&gt;
&lt;P&gt;[&amp;lt;8004f038&amp;gt;] (unwind_backtrace+0x0/0xf8) from [&amp;lt;800422dc&amp;gt;] (do_IPI+0x11c/0x144)&lt;/P&gt;
&lt;P&gt;[&amp;lt;800422dc&amp;gt;] (do_IPI+0x11c/0x144) from [&amp;lt;800478cc&amp;gt;] (__irq_svc+0x4c/0xe8)&lt;/P&gt;
&lt;P&gt;Exception stack(0xbff07f98 to 0xbff07fe0)&lt;/P&gt;
&lt;P&gt;7f80:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 00000001 00000188&lt;/P&gt;
&lt;P&gt;7fa0: 00000000 00000000 bff06000 80c67f84 805b042c 80bff394 1000406a 412fc09a&lt;/P&gt;
&lt;P&gt;7fc0: 00000000 00000000 00000005 bff07fe0 800a9418 80048b30 200f0013 ffffffff&lt;/P&gt;
&lt;P&gt;[&amp;lt;800478cc&amp;gt;] (__irq_svc+0x4c/0xe8) from [&amp;lt;80048b30&amp;gt;] (cpu_idle+0x38/0xfc)&lt;/P&gt;
&lt;P&gt;[&amp;lt;80048b30&amp;gt;] (cpu_idle+0x38/0xfc) from [&amp;lt;105a23b4&amp;gt;] (0x105a23b4)&lt;/P&gt;
&lt;P&gt;CPU1: stopping&lt;/P&gt;
&lt;P&gt;[&amp;lt;8004f038&amp;gt;] (unwind_backtrace+0x0/0xf8) from [&amp;lt;800422dc&amp;gt;] (do_IPI+0x11c/0x144)&lt;/P&gt;
&lt;P&gt;[&amp;lt;800422dc&amp;gt;] (do_IPI+0x11c/0x144) from [&amp;lt;800478cc&amp;gt;] (__irq_svc+0x4c/0xe8)&lt;/P&gt;
&lt;P&gt;Exception stack(0xbffaff98 to 0xbffaffe0)&lt;/P&gt;
&lt;P&gt;ff80:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 00000001 00000188&lt;/P&gt;
&lt;P&gt;ffa0: 00000000 00000000 bffae000 80c67f84 805b042c 80bff394 1000406a 412fc09a&lt;/P&gt;
&lt;P&gt;ffc0: 00000000 00000000 00000005 bffaffe0 800a9418 80048b30 200f0013 ffffffff&lt;/P&gt;
&lt;P&gt;[&amp;lt;800478cc&amp;gt;] (__irq_svc+0x4c/0xe8) from [&amp;lt;80048b30&amp;gt;] (cpu_idle+0x38/0xfc)&lt;/P&gt;
&lt;P&gt;[&amp;lt;80048b30&amp;gt;] (cpu_idle+0x38/0xfc) from [&amp;lt;105a23b4&amp;gt;] (0x105a23b4)&lt;/P&gt;
&lt;P&gt;SMP: failed to stop secondary CPUs&lt;/P&gt;
&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Running under kgdb, I was able to trace this to a segfault due to a corrupted variable (frame) in the following:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="c++" __jive_macro_name="code" class="jive_text_macro _jivemacro_uid_1414694081721506 jive_macro_code" jivemacro_uid="_1414694081721506"&gt;
&lt;P&gt;/*!&lt;/P&gt;
&lt;P&gt; * Dequeue one V4L capture buffer&lt;/P&gt;
&lt;P&gt; *&lt;/P&gt;
&lt;P&gt; * @param cam&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; structure cam_data *&lt;/P&gt;
&lt;P&gt; * @param buf&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; structure v4l2_buffer *&lt;/P&gt;
&lt;P&gt; *&lt;/P&gt;
&lt;P&gt; * @return&amp;nbsp; status&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 success, EINVAL invalid frame number,&lt;/P&gt;
&lt;P&gt; *&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ETIME timeout, ERESTARTSYS interrupted by user&lt;/P&gt;
&lt;P&gt; */&lt;/P&gt;
&lt;P&gt;static int mxc_v4l_dqueue(cam_data *cam, struct v4l2_buffer *buf)&lt;/P&gt;
&lt;P&gt;{&lt;/P&gt;
&lt;P&gt;&amp;nbsp; int retval = 0;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; struct mxc_v4l_frame *frame;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; unsigned long lock_flags;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; pr_debug("In MVC:mxc_v4l_dqueue\n");&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; if (!wait_event_interruptible_timeout(cam-&amp;gt;enc_queue,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cam-&amp;gt;enc_counter != 0, 10 * HZ)) {&lt;/P&gt;
&lt;P&gt;&amp;nbsp; pr_err("ERROR: v4l2 capture: mxc_v4l_dqueue timeout "&lt;/P&gt;
&lt;P&gt;&amp;nbsp; "enc_counter %x\n",&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cam-&amp;gt;enc_counter);&lt;/P&gt;
&lt;P&gt;&amp;nbsp; return -ETIME;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; } else if (signal_pending(current)) {&lt;/P&gt;
&lt;P&gt;&amp;nbsp; pr_err("ERROR: v4l2 capture: mxc_v4l_dqueue() "&lt;/P&gt;
&lt;P&gt;&amp;nbsp; "interrupt received\n");&lt;/P&gt;
&lt;P&gt;&amp;nbsp; return -ERESTARTSYS;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; if (down_interruptible(&amp;amp;cam-&amp;gt;busy_lock))&lt;/P&gt;
&lt;P&gt;&amp;nbsp; return -EBUSY;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; spin_lock_irqsave(&amp;amp;cam-&amp;gt;dqueue_int_lock, lock_flags);&lt;/P&gt;
&lt;P&gt;&amp;nbsp; cam-&amp;gt;enc_counter--;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; frame = list_entry(cam-&amp;gt;done_q.next, struct mxc_v4l_frame, queue);&lt;/P&gt;
&lt;P&gt;&amp;nbsp; list_del(cam-&amp;gt;done_q.next);&lt;/P&gt;
&lt;P&gt;&amp;nbsp; if (frame-&amp;gt;buffer.flags &amp;amp; V4L2_BUF_FLAG_DONE) {&lt;/P&gt;
&lt;P&gt;&amp;nbsp; frame-&amp;gt;buffer.flags &amp;amp;= ~V4L2_BUF_FLAG_DONE;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; } else if (frame-&amp;gt;buffer.flags &amp;amp; V4L2_BUF_FLAG_QUEUED) {&lt;/P&gt;
&lt;P&gt;&amp;nbsp; pr_err("ERROR: v4l2 capture: VIDIOC_DQBUF: "&lt;/P&gt;
&lt;P&gt;&amp;nbsp; "Buffer not filled.\n");&lt;/P&gt;
&lt;P&gt;&amp;nbsp; frame-&amp;gt;buffer.flags &amp;amp;= ~V4L2_BUF_FLAG_QUEUED;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; retval = -EINVAL;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; } else if ((frame-&amp;gt;buffer.flags &amp;amp; 0x7) == V4L2_BUF_FLAG_MAPPED) {&lt;/P&gt;
&lt;P&gt;&amp;nbsp; pr_err("ERROR: v4l2 capture: VIDIOC_DQBUF: "&lt;/P&gt;
&lt;P&gt;&amp;nbsp; "Buffer not queued.\n");&lt;/P&gt;
&lt;P&gt;&amp;nbsp; retval = -EINVAL;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; buf-&amp;gt;bytesused = cam-&amp;gt;v2f.fmt.pix.sizeimage;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; buf-&amp;gt;index = frame-&amp;gt;index;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; buf-&amp;gt;flags = frame-&amp;gt;buffer.flags;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; buf-&amp;gt;m = cam-&amp;gt;frame[frame-&amp;gt;index].buffer.m;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; buf-&amp;gt;timestamp = cam-&amp;gt;frame[frame-&amp;gt;index].buffer.timestamp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; spin_unlock_irqrestore(&amp;amp;cam-&amp;gt;dqueue_int_lock, lock_flags);&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; up(&amp;amp;cam-&amp;gt;busy_lock);&lt;/P&gt;
&lt;P&gt;&amp;nbsp; return retval;&lt;/P&gt;
&lt;P&gt;}&lt;/P&gt;
&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Essentially, the frame variable, as retrieved from the done_q, is invalid.&amp;nbsp; The bug can be made to happen only during severe loading of the system (2 x capture, encoding, all four cores pinned with processing) for hours at a time.&amp;nbsp; Other variables within this stack frame and above stack frames look fine, but the frame variable, although it appears to be a valid pointer, seems to point to garbage:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="lia-inline-image-display-wrapper" image-alt="FramePointerGarbaged.png"&gt;&lt;IMG alt="FramePointerGarbaged.png" src="https://community.nxp.com/t5/image/serverpage/image-id/41497iD75DF58CDFCA9C9E/image-size/large?v=v2&amp;amp;px=999" title="FramePointerGarbaged.png" /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;The kernel seems to always stop here and always with the same problem: frame is corrupt, everything else is okay.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So my questions are as follows:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;What could cause the frame variable to become corrupted?&lt;/LI&gt;&lt;LI&gt;Is it possible that there is a concurrency problem between the two instances of the mxc_v4l2_capture module?&lt;/LI&gt;&lt;LI&gt;What can I do to track down the source of the corruption of this variable?&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks in advance for any help offered.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Dave&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 02 Nov 2020 13:13:46 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/i-MX6Q-Concurrent-Capture-Kernel-Oops/m-p/367376#M52278</guid>
      <dc:creator>davemcmordie</dc:creator>
      <dc:date>2020-11-02T13:13:46Z</dc:date>
    </item>
    <item>
      <title>Re: i.MX6Q Concurrent Capture Kernel Oops</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/i-MX6Q-Concurrent-Capture-Kernel-Oops/m-p/367377#M52279</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Dave&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;you can try recent bug fixes for L3.0.35_4.1.0 provided below&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="https://community.nxp.com/thread/333368"&gt;IMX6Q system hang-up problem /&amp;nbsp; linux kernel(3.0.35)&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=i.MX6Q&amp;amp;nodeId=018rH3ZrDRB24A&amp;amp;fpsp=1&amp;amp;tab=Design_Tools_Tab"&gt;L3.0.101_4.1.1_SOURCE_BSP&lt;/A&gt; &lt;IMG alt="" class="jiveImage" src="http://www.freescale.com/files/graphic/SECURITYINFOIMAGE.gif" /&gt; : i.MX 6Quad, i.MX 6Dual, i.MX 6DualLite, i.MX 6Solo and i.MX 6Sololite Linux BSP Source Code &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards&lt;/P&gt;&lt;P&gt;igor&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 04 Nov 2014 03:34:01 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/i-MX6Q-Concurrent-Capture-Kernel-Oops/m-p/367377#M52279</guid>
      <dc:creator>igorpadykov</dc:creator>
      <dc:date>2014-11-04T03:34:01Z</dc:date>
    </item>
    <item>
      <title>Re: i.MX6Q Concurrent Capture Kernel Oops</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/i-MX6Q-Concurrent-Capture-Kernel-Oops/m-p/367378#M52280</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks Igor,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I will give these fixes a try and let you know.&amp;nbsp; To confirm, the patches I will try to apply are:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;0001-ENGR00276652-ARM-mx6-Use-IOMUXC-irq-instead-of-125.patch&lt;/P&gt;&lt;P&gt;0009-ARM-imx-return-zero-in-case-next-event-gets-a-large-.patch&lt;/P&gt;&lt;P&gt;0010-ENGR00295714-GPT-Status-register-bits-are-cleared-in.patch&lt;/P&gt;&lt;P&gt;0020-ENGR00300417-MX6SL-Add-100M-and-24M-MMDC-parameters-.patch&lt;/P&gt;&lt;P&gt;0021-ENGR00267929-MX6SL-Add-DDR3-support-for-MX6SL.patch&lt;/P&gt;&lt;P&gt;0034-ENGR00316182-imx6x-Fix-bugs-in-clock-and-cpufreq-cod.patch&lt;/P&gt;&lt;P&gt;0035-ENGR00316180-iMX6x-Support-IRAM-page-table-when-DDR-.patch&lt;/P&gt;&lt;P&gt;0037-ENGR00320182-iMX6DQ-iMX6DL-Fix-bug-in-DLL-off-mode-c.patch&lt;/P&gt;&lt;P&gt;0063-ENGR00331050-imx6qdl-Fix-the-workaround-for-ERR00577.patch&lt;/P&gt;&lt;P&gt;0068-ENGR00331611-imx6x-Set-SCU-CPU-Power-status-register.patch&lt;/P&gt;&lt;P&gt;0069-ENGR00327364-imx6x-Ensure-that-the-bandgap-self-bias.patch&lt;/P&gt;&lt;P&gt;0070-ENGR00334447-imx6qdl-Fix-random-failures-caused-by-d.patch&lt;/P&gt;&lt;P&gt;0071-MLK-9663-imx6x-Fix-the-DDR-self-refresh-entry-proced.patch&lt;/P&gt;&lt;P&gt;0072-MLK-9664-imx6x-Remove-unused-commented-code.patch&lt;/P&gt;&lt;P&gt;0075-MLK-9685-ARM-imx6x-Ensure-that-the-kernel-can-boot-w.patch&lt;/P&gt;&lt;P&gt;0076-MLK-9698-ARM-imx6x-Fix-build-break-when-CONFIG_SMP-i.patch&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am using the Variscite fork of the kernel with many patches of our own, so I will have to apply these patches carefully.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best,&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Dave&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 07 Nov 2014 23:09:50 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/i-MX6Q-Concurrent-Capture-Kernel-Oops/m-p/367378#M52280</guid>
      <dc:creator>davemcmordie</dc:creator>
      <dc:date>2014-11-07T23:09:50Z</dc:date>
    </item>
  </channel>
</rss>

