Hello Sakari, 2011/4/13 Sakari Ailus <sakari.ailus@xxxxxxxxxxxxxxxxxxxxxxxxxx>: > Bastian Hecht wrote: >> Hello people, > > Hi Bastian, > > I'm cc'ing Laurent. > >> I switched to the new DM3730 from IGEP and while it's supposed to be >> (almost) the same as the 3530 Version the isp deadlocks >> deterministically after I start capturing the second time with yavta. > > Does the capture work the first time w/o issues? Yes, I can always run yavta once capturing 4 frames (3 skipped, last saved). It usually deadlocks when running yavta the second time but I had 1 successful 2nd try (out of 20 maybe). >> All extra locking debug output is enabled in the kernel .config. > > I'm not fully certain on what this exactly is that you have below, but > it looks like your system is staying in interrupt context all the time. > My guess is that the ISP is producing interrupts that the driver is not > handling properly, causing the interrupt handler to be called again > immediately. Nice! OK, I'd like to fully understand the panic output, maybe you can help there: After [ 376.016906] [<c02e3dc4>] (_raw_spin_unlock_irqrestore+0x40/0x44) from [<bf01f678>] (omap3isp_video_queue_streamon+0x80/0x90 the IRQs get enabled again. Immediately our offending irq wants to get served but noone is clearing it. At some time, the timer interrupt triggers the watchdog for a kernel panic. So the last exception block is the process context that is currently active. But why are there 2 irq routines displayed? Is the middle one the hardware handling that causes a software irq to be triggered (upper block)? So my next step could be to find the unhandled irq number? > Do you have the same sensor working on OMAP 3530? I never had this problem on an OMAP 3530, although I better test it again with the current setup. I try to get my hands on an 3530 today. >> I am unsure if this is an ISP thing or a problem in the >> interrupthandling software. > > This has probably something to do with the ISP driver. :-) > >> The first block is the watchdog that detects the deadlock. The last >> block is in the isp-code but how can it hang when trying to UNlock a >> spinlock? I am unsure about the 2nd block. >> The assembler code of __irq_svc is located in arch/arm/kernel/entry-armv.S >> Maybe I should try on linux-arm@xxxxxxxxxxxxxxxxxxxxxx but I thought I >> give it a shot here first. >> >> I use the omap3isp-2.6.35.3-omap3isp branch from Laurent. > > Why so old kernel? I tried a newer version, but there I couldn't get it booting with my igep. The kernel unpacked and tried to boot but it froze. I decided to use a version that is officially is supported by the igep team. Thanks so much for this valuable guess! Bastian Hecht > I think you'd be best off using this one: > > <URL:http://git.linuxtv.org/pinchartl/media.git?a=shortlog;h=refs/heads/omap3isp-next-omap3isp> > >> Any ideas? Thanks for any help, >> >> Bastian Hecht >> >> >> [ 190.059509] BUG: soft lockup - CPU#0 stuck for 61s! [yavta:2224] >> [ 190.065704] Kernel panic - not syncing: softlockup: hung tasks >> [ 190.071563] [<c0031078>] (unwind_backtrace+0x0/0xe4) from >> [<c02baf24>] (panic+0x50/0xd0) >> [ 190.079711] [<c02baf24>] (panic+0x50/0xd0) from [<c00729e4>] >> (softlockup_tick+0x134/0x158) >> [ 190.088043] [<c00729e4>] (softlockup_tick+0x134/0x158) from >> [<c005612c>] (update_process_times+0x28/0x48) >> [ 190.097656] [<c005612c>] (update_process_times+0x28/0x48) from >> [<c00697bc>] (tick_sched_timer+0x88/0xbc) >> [ 190.107177] [<c00697bc>] (tick_sched_timer+0x88/0xbc) from >> [<c0061ff0>] (__run_hrtimer+0x44/0x84) >> [ 190.116119] [<c0061ff0>] (__run_hrtimer+0x44/0x84) from >> [<c0062144>] (hrtimer_interrupt+0x114/0x2c8) >> [ 190.125305] [<c0062144>] (hrtimer_interrupt+0x114/0x2c8) from >> [<c0035e20>] (omap2_gp_timer_interrupt+0x20/0x2c) >> [ 190.135437] [<c0035e20>] (omap2_gp_timer_interrupt+0x20/0x2c) from >> [<c00730e4>] (handle_IRQ_event+0x24/0xe0) >> [ 190.145324] [<c00730e4>] (handle_IRQ_event+0x24/0xe0) from >> [<c0074b80>] (handle_level_irq+0x90/0xfc) >> [ 190.154510] [<c0074b80>] (handle_level_irq+0x90/0xfc) from >> [<c002c06c>] (asm_do_IRQ+0x6c/0x8c) >> [ 190.163177] [<c002c06c>] (asm_do_IRQ+0x6c/0x8c) from [<c002c9f4>] >> (__irq_svc+0x34/0x80) >> [ 190.171234] Exception stack(0xda413c98 to 0xda413ce0) >> [ 190.176300] 3c80: >> 00000020 c03c20d0 >> [ 190.184509] 3ca0: 00000000 c0417240 da412000 00000002 00000000 >> ded72e84 0000000a dec54640 >> [ 190.192718] 3cc0: c0417240 00000000 00000002 da413ce0 c0051bd4 >> c0051ad8 20000113 ffffffff >> [ 190.200958] [<c002c9f4>] (__irq_svc+0x34/0x80) from [<c0051ad8>] >> (__do_softirq+0x3c/0xf8) >> [ 190.209167] [<c0051ad8>] (__do_softirq+0x3c/0xf8) from [<c0051bd4>] >> (irq_exit+0x40/0x8c) >> [ 190.217315] [<c0051bd4>] (irq_exit+0x40/0x8c) from [<c002c070>] >> (asm_do_IRQ+0x70/0x8c) >> [ 190.225280] [<c002c070>] (asm_do_IRQ+0x70/0x8c) from [<c002c9f4>] >> (__irq_svc+0x34/0x80) >> [ 190.233306] Exception stack(0xda413d20 to 0xda413d68) >> [ 190.238403] 3d20: defc4938 defc48c0 defc4084 ded72e84 ded72e14 >> ded72e80 40000013 ded72e84 >> [ 190.246612] 3d40: ded72e68 dec54640 dedc5a38 00000000 defc40f8 >> da413d68 bf01d4cc bf01d4ec >> [ 190.254821] 3d60: 60000013 ffffffff >> [ 190.258361] [<c002c9f4>] (__irq_svc+0x34/0x80) from [<bf01d4ec>] >> (omap3isp_video_queue_streamon+0x6c/0x7c [omap3_isp]) >> [ 190.269165] [<bf01d4ec>] (omap3isp_video_queue_streamon+0x6c/0x7c >> [omap3_isp]) from [<bf01f1d4>] (isp_video_streamon+0x150/0x1f8 >> [omap3_isp]) >> [ 190.281951] [<bf01f1d4>] (isp_video_streamon+0x150/0x1f8 >> [omap3_isp]) from [<c01fa76c>] (__video_do_ioctl+0x1488/0x3bd0) >> [ 190.292877] [<c01fa76c>] (__video_do_ioctl+0x1488/0x3bd0) from >> [<c01f8ee8>] (__video_usercopy+0x2d0/0x414) >> [ 190.302581] [<c01f8ee8>] (__video_usercopy+0x2d0/0x414) from >> [<c01f8370>] (v4l2_unlocked_ioctl+0x38/0x3c) >> [ 190.312194] [<c01f8370>] (v4l2_unlocked_ioctl+0x38/0x3c) from >> [<c00a6d6c>] (vfs_ioctl+0x2c/0x6c) >> [ 190.321044] [<c00a6d6c>] (vfs_ioctl+0x2c/0x6c) from [<c00a7448>] >> (do_vfs_ioctl+0x4cc/0x514) >> [ 190.329437] [<c00a7448>] (do_vfs_ioctl+0x4cc/0x514) from >> [<c00a74c4>] (sys_ioctl+0x34/0x54) >> [ 190.337829] [<c00a74c4>] (sys_ioctl+0x34/0x54) from [<c002ce40>] >> (ret_fast_syscall+0x0/0x30) >> -- >> To unsubscribe from this list: send the line "unsubscribe linux-media" in >> the body of a message to majordomo@xxxxxxxxxxxxxxx >> More majordomo info at http://vger.kernel.org/majordomo-info.html >> > > Regards, > > -- > Sakari Ailus > sakari.ailus@xxxxxxxxxxxxxxxxxxxxxxxxxx > -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html