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没有机会执行。

  • 相关阅读:
    GitLab 介绍
    git 标签
    git 分支
    git 仓库 撤销提交 git reset and 查看本地历史操作 git reflog
    git 仓库 回退功能 git checkout
    python 并发编程 多进程 练习题
    git 命令 查看历史提交 git log
    git 命令 git diff 查看 Git 区域文件的具体改动
    POJ 2608
    POJ 2610
  • 原文地址:https://www.cnblogs.com/kernel-style/p/3843157.html
Copyright © 2011-2022 走看看