zoukankan      html  css  js  c++  java
  • Oops 的栈信息分析

    MTK MT55 F3600 平台

    现象:播放MP4文件不断快退或者快进系统重启。

    关键log:

    Kernel panic - not syncing: x_msg_q_receive(): not support multiple threads call msg_q_receive.

    [VDEC]ClrDPB 0 done.
    [SWDMX]Seek: Need New Range
    [<c0034edc>] (unwind_backtrace+0x0/0xe4) from [<c037fd00>] (panic+0x68/0x188)
    [<c037fd00>] (panic+0x68/0x188) from [<bf1bdb74>] (x_msg_q_receive+0x174/0x200 [mtk_mod])
    [<bf1bdb74>] (x_msg_q_receive+0x174/0x200 [mtk_mod]) from [<bf3264f4>] (_VDecReceiveEs+0xfc/0x954 [mtk_mod])
    [<bf3264f4>] (_VDecReceiveEs+0xfc/0x954 [mtk_mod]) from [<bf327044>] (_VDEC_MainLoop+0x2f8/0x8f4 [mtk_mod])
    [IR]PWD:0x00002080 RxIsr Info:0x03030317 0x000000000052c1ea
    [IR]u4BitCnt=17
    [IR]u4CrystalKey is 0xffffffff
    [<bf327044>] (_VDEC_MainLoop+0x2f8/0x8f4 [mtk_mod]) from [<bf1be598>] (ThreadProc+0xa8/0xb8 [mtk_mod])
    [<bf1be598>] (ThreadProc+0xa8/0xb8 [mtk_mod]) from [<c0065d74>] (kthread+0x84/0x8c)
    [<c0065d74>] (kthread+0x84/0x8c) from [<c00304cc>] (kernel_thread_exit+0x0/0x8)
    CPU0: stopping
    [<c0034edc>] (unwind_backtrace+0x0/0xe4) from [<c002a368>] (do_IPI+0xc8/0x198)
    [<c002a368>] (do_IPI+0xc8/0x198) from [<c002f68c>] (__irq_svc+0x4c/0xe0)
    Exception stack(0xc04a5f68 to 0xc04a5fb0)
    5f60: 00000000 00000000 c04a5fb0 00000000 c04a4000 c04b34ec
    5f80: c04daf44 c03848f4 0000406a 413fc090 00000000 00000000 c4208044 c04a5fb0
    5fa0: c0030528 c003052c 60000013 ffffffff
    [<c002f68c>] (__irq_svc+0x4c/0xe0) from [<c003052c>] (default_idle+0x24/0x28)
    [<c003052c>] (default_idle+0x24/0x28) from [<c0030804>] (cpu_idle+0x7c/0xdc)
    [<c0030804>] (cpu_idle+0x7c/0xdc) from [<c0008868>] (start_kernel+0x2bc/0x324)
    [<c0008868>] (start_kernel+0x2bc/0x324) from [<0000803c>] (0x803c)

    错误原因:not support multiple threads call msg_q_receive.

    调用流程:

    1 kernel_thread_exit->

    2 kthread->

    ThreadProc->

    _VDEC_MainLoop->

    _VDecReceiveEs->

    x_msg_q_receive-> //此接口有问题

    MTK 回复

    1,  x_msg_q_receive这个接口之前不支持在多个线程里面使用,现在改成可以support multi thread,这部分改动之前在宜家项目上有上过,MT55CA应该是没有同步过来。

    2,  Wait_new_range这个消息之前空转,中间没有delay,导致其他thread没有机会执行。

  • 相关阅读:
    Linux 安装Python3.7
    Linux 修改默认yum源为阿里云
    Linux 安装和配置ActiveMQ Artemis
    Linux 查看内存空间、磁盘空间、进程等信息
    Linux 查询和开启端口
    伤害 等待互斥锁
    深入理解Linux内核之脏页跟踪
    基础——SPI与QSPI的异同,QSPI的具体协议是什么,QSPI有什么用
    浅谈显示器色域:从sRGB到广色域
    Linux SPI 驱动
  • 原文地址:https://www.cnblogs.com/kernel-style/p/3843157.html
Copyright © 2011-2022 走看看