This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] Linux/DRA744:使用 VIP 和 VPE 时、每3至4、000个摄像头打开/关闭一次崩溃

Guru**** 2553450 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/654124/linux-dra744-crash-every-3-4-000-open-close-of-cameras-while-using-vip-and-vpe

器件型号:DRA744

工具/软件:Linux

早上好、

我在板上使用 DRA7xx、4个视频摄像头输入、在 Android JB 系统 Linux 内核3.14上使用 VIP 和 VPE;VPDMA 加载了 FW "vpdma-1b8.fw"。

每个(平均) 3-4000 (3-4万)摄像头打开/关闭时、系统意外崩溃。  

(开/关序列可能小于100或大于7-8、000、但平均值与上述相同。

崩溃似乎在关闭时发生、在这里我使用具有 以下参数的3个 vidioc_streamoff 序列:  

v4l2_buf_type_video_capture、   v4l2_buf_type_video_captive_mplane、 v4l2_buf_type_video_output_mplane 。

出现问题时 ,可以验证 video_core.c 中的 vb2_ioctl_streamon 不起作用;因此,在 v4l2_dev.c 中的 v4l2_release 在 VIP_U1仍在运行时调用 VPE_release;然后,IRQ 发送信号停止 CPU0。

我在 SMP 中工作。

相关的日志崩溃如下所示:

[1138.042083]内部错误:Oops:805 [#1]抢占 SMP ARM
[ 1138.047882]链接到的模块:G_Android libcomposite stv0987 SPI_CAN CAN_DEV SPI_CAN_TX SPI_CAN_Rx MTA_cpsw CAN_BCM Davinci_cpdma CAN_RAW CAN DaVinci_MDIO cyttsp4_i2c cyttsp4[1138.063873]
[1138.063873]正在释放...
ip6table_mangle ip6table_raw ip6table_filter ip6_tables iptable_nat nf_nf_conntrack_IPv4 nfrag_IPv4 nf_nf_nf_nf_conntrack iptable_mangle iptable_raw iptable_filter iptables_tables IPv6 tw2964 VIP mt
[1138.127197] CPU:0污染:P O (3.8.13-00160-gb478bfd-m脏#9)
[1138.134857] PC 位于 VIP_IRQ+0x344/0x458 [VIP]
[1138.139526] LR 位于_TIMER_DELAY+0x50/0x64
[1138.144042] PC:[<7f1fabfc>] LR:[<801b58c0>] PSR:60000193
[1138.144042] sp:805cde90 IP:00000000 FP:e666cb8.
[1138.156158] R10:7f1ff590 R9:00000001 R8:e786c6a8
[1138.1682] r7:e6657000 R6:e666ca00 R5:00000001 R4:00000000
[1138.168548] r3:00200200 r2:00100100 r1:cc17cc16 r0:60000193
[1138.175445]标志:nZCv 在模式 SVC_32 ISA ARM 段内核上关闭 FIQ 的 IRQ
[1138.183258]控制:10c5387d 表:e67ac06a DAC:00000015

三、会议的报告

[1138.828918][<7f1fabfc>](VIP_IRQ+0x344/0x458 [VIP])来自[<800928cc>](handle_IRQ_event_perpu + 0x50/0x198)
[1138.839202][<800928cc>](handle_irq_event_perpu+0x50/0x198)来自[<80092a50>](handle_irq_event+0x3c/0x5c)
[1138.849578][<80092a50>](handle_irq_event+0x3c/0x5c)从[<80095774>](handle_fasteoi_irq+0x98/0x158)
[1138.859497][<80095774>](handle_faesteoi_IRQ+0x98/0x158)从[<8009229c>](generic_handle_IRQ+0x20/0x30)
[1138.869598][<8009229c>](generic_handle_IRQ+0x20/0x30)、从[<80014eac>](handle_IRQ+0x4c/b0)
[1138.878875][<80014eac>](handle_IRQ+0x4c/b0)来自[<80008500>](GIC_handle_IRQ+0x28/0x5c)
[1138.887786][<80008500>](GIC_Handle_IRQ+0x28/0x5c)从[<80013aa4>](_IRQ_Svc+0x44/0x7c)
[1138.896606]异常堆栈(0x805cdf58至0x805cdfa0)
[1138.901947] df40:800150fc 002b607c
[1138.910583] df60:00000000 8002eacc 805cc000 805cc000 80674bc8 803dabf0 805cc000 00000000
[1138.919219] df80:805d8c50 00000000 806524c0 805cdfa0 800150fc 80015100 60000013 ffffff
[1138.927856][<80013aa4>](_IRQ_Svc+0x44/0x7c)、从[<80015100>](DEFAULT_IDLE_+0x20/0x3c)
[1138.936492][<80015100>](DEFAULT_IDEL+0x20/0x3c)从[<8001540c>](CPU_IDEL+0x54/0x110)
[1138.945129][<8001540c>](CPU_IDLE_+0x54/0x110)、从[<805887b8>](START_kernel+0x2a4/0x2f4)
[1138.953948]代码:e28bbf6e e1a0000b eb47649b e898000c (e5823004)
[1138.960418]--[结束线迹4911f9840315e154 ]--
[1138.965270]内核严重错误-未同步:中断中出现致命异常
[1138.971984]
[1138.971984] CPU1:IPI 消息0x5
[1138.977050] CPU1:停止
[1138.979919][<8001b4b4>](DELOG_BREBOART+0x0/0xf0)从[<8001948c>](handle_ipi+0x1b0/0x1ec)
[1138.989074][<8001948c>](handle_ipi+0x1b0/0x1ec)从[<8000852c>](GIC_handle_IRQ+0x54/0x5c)
[1138.998168][<8000852c>](GIC_Handle_IRQ+0x54/0x5c)从[<80013aa4>](_IRQ_Svc+0x44/0x7c)
[1139.006988]异常堆栈(0xda5e9eb8至0xda5e9f00)
[1139.012329] 9ea0:a06a1bc6 0000000a
[1139.020935] 9ec0:b850c540 80674eb8 80bb2528 0000007a a06a1b89 00000000 dec813c0 dec813c8
[1139.029571] 9ee0:00000000 64fdccc5 da47d000 da5e9f00 801b58c0 801b58b8 a0000013 ffff
[1139.038177][<80013aa4>](__IRQ_Svc+0x44/0x7c),从[<801b58b8>](__TIMER_DELAY+0x48/0x64)
[1139.046936][<801b58b8>](_timer_delay+0x48/0x64)从[<7f1ea664>](VPE_RELEASE_0x48/0x1b8 [MTA_VPE])
[1139.056854][<7f1ea664>](VPE_RELE+0x48/0x1b8 [MTA_VPE])、从[<7f19b3c0>](v4l2_RELE+0x48/0xa4 [videoDE])
[1139.067718][<7f19b3c0>](v4l2_release+0x48/0xa4 [videodev])从[<800d46d0>](_flout+0x88/0x1fc)
[1139.077178][<800d46d0>](__fput +0x88/0x1fc)来自[<8005b830>](task_work _ run+0xac/0xe4)
[1139.085723][<8005b830>](task_work 运行+0xac/0xe4)来自[<80017824>](do_work 挂起+bbc/0xc0)
[1139.095001][<80017824>](do_work 挂起+bbc/0xc0)来自[<80013fcc>](work 挂起+0xc/0x20)
[1139.104095]在1秒内重新启动..
[1140.108093]重新启动 Linux 版本3.8.13-00160-gb478bfd-di

有什么建议吗?

提前感谢您的帮助、

Lorenzo

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    大家好、

    您的查询已转发给 VIP/VPE 专家进行评论。

    此致、
    Mariya
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    此处的问题看起来像是 VIP 驱动程序中的问题。

    当检测到 VIP IRQ 处理程序崩溃以及打印的两个 stackdump 时,将发生 VPE 关闭。
    流式关闭失败时是否出现故障?
    调用 streamoff 时是否看到 ioctl 故障?
    您是否确保在子设备 s_stream 实现中关闭摄像头?

    此外、尝试在崩溃的 PC 上运行 addr2line、并尝试找出故障代码中的确切位置

    Nikhil D
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的、我现在同意 VIP IRQ_handler 中存在问题;我也验证了故障是在第一个 VIP ioctl_streamoff 中。
    无论如何、当问题发生时、我甚至看不到 vidioc_streamoff ioctl 中的任何 printk、只需在 ioctl 本身的开头按目的放置即可。
    原子信标或其他检查没有帮助、CPU1的故障在其他情况发生之前开始。
    我现在正在尝试在调用 VIP vidioc_streamoff ioctl 之前禁用 IRQ VIP 线路、它似乎很有希望、因为有几个小时没有失败;但最好在确定之前再次等待。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我确认问题出在 VIP 驱动程序中。 在将其关闭之前将其禁用、似乎可以解决问题。
    许多小时、超过1、000开放/关闭正常。
    任何其他检查都意外地不时无法正常工作。 总之、它现在已经解决了、
    谢谢!