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->
3 ThreadProc->
4 _VDEC_MainLoop->
5 _VDecReceiveEs->
6 x_msg_q_receive-> //此接口有问题
MTK 回复
1, x_msg_q_receive这个接口之前不支持在多个线程里面使用,现在改成可以support multi thread,这部分改动之前在宜家项目上有上过,MT55CA应该是没有同步过来。
2, Wait_new_range这个消息之前空转,中间没有delay,导致其他thread没有机会执行。
Oops 的栈信息分析的更多相关文章
- Linux驱动调试-根据oops的栈信息,确定函数调用过程
上章链接入口: http://www.cnblogs.com/lifexy/p/8006748.html 在上章里,我们分析了oops的PC值在哪个函数出错的,那如何通过栈信息来查看出错函数的整个调用 ...
- 37.Linux驱动调试-根据oops的栈信息,确定函数调用过程
上章链接入口: http://www.cnblogs.com/lifexy/p/8006748.html 在上章里,我们分析了oops的PC值在哪个函数出错的 本章便通过栈信息来分析函数调用过程 1. ...
- 多线程_java多线程环境下栈信息分析思路
导读:Java多线程开发给程序带来好处的同时,由于多线程程序导致的问题也越来越多,而且对问题的查找和分析解决对于菜鸟程序原来是是件头疼的事.下面我就项目中使用多线程开发程序过程中遇到的问题做详细的分析 ...
- linux驱动调试--段错误之oops信息分析
linux驱动调试--段错误之oops信息分析 http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=29401328&id= ...
- Java程序栈信息文件中的秘密(五)
最近发现在使用jstack工具在导出Java应用的线程栈时有一个小小的窍门,比如Linux环境上有一个用户为appuser,假如以这个用户启动了一个Java进程B,如果想要导出进程B的线程栈,则必须切 ...
- java Exception 出错的栈信息打印到日志中 打印堆栈信息
我们在开发程序的过程当中,日志是必不可少的工具,这有助于我们分析问题的原因,和出错的详细信息,而java的异常机制又会方便且迅速的帮我们找到出错行的位置. try { .... } catch (Ex ...
- Linux Kernel PANIC(三)--Soft Panic/Oops调试及实例分析【转】
转自:https://blog.csdn.net/gatieme/article/details/73715860 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原 ...
- 计算机是如何计算的、运行时栈帧分析(神奇i++续)
关于i++的疑问 通过JVM javap -c 查看字节码执行步骤了解了i++之后,衍生了一个问题: int num1=50; num1++*2执行的是imul(将栈顶两int类型数相乘,结果入栈), ...
- Linux内核--网络栈实现分析(十一)--驱动程序层(下)
本文分析基于Linux Kernel 1.2.13 原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7555870 更多请查看专栏,地 ...
随机推荐
- python 并发执行
并发执行, 精简代码. 适用python2 和python3 # -*- encoding:utf-8 -*- from threading import Thread from multiproce ...
- [Algo] 625. Longest subarray contains only 1s
Given an array of integers that contains only 0s and 1s and a positive integer k, you can flip at mo ...
- Ubuntu18.04 离线安装 docker
Ubuntu18.04 离线安装 dockerhttps://blog.csdn.net/u012814856/article/details/804231851. 将下载下来的文件夹中的 4 个文件 ...
- TPO3-1Architecture
Much of the world's great architecture has been constructed of stone because of its beauty, permanen ...
- Unittest - Python 使用总结
Unittest - Python 使用总结 批量执行 一.UnitTest TestSuite 控制用例执行的顺序 UnitTest 框架默认 main() 方法根据 ASCII 码的顺序加载测试用 ...
- 三十二、http与www服务介绍
一.用户访问百度(www.baidu.com) 用户访问在url中输入地址后,首先会访问本地的缓存和hosts文件,如果没有,会访问本地DNS,在就是根域和顶级域名等,在前面已经说过了,这里不再赘述. ...
- Eclipse 快捷键(mac)
Option + Command + X: 运行Command + O:显示大纲Command + 1:快速修复Command + D:删除当前行Command + Option + ↓:复制当前行到 ...
- Different Integers
牛客一 J题 树状数组 题目描述 Given a sequence of integers a1, a2, ..., an and q pairs of integers (l1, r1), (l2, ...
- maven setting.xml说明
<?xml version="1.0" encoding="UTF-8"?> <settings xmlns="http://mav ...
- SpringBoot:Shiro 整合 Redis
前言 前段时间做了一个图床的小项目,安全框架使用的是Shiro.为了使用户7x24小时访问,决定把项目由单机升级为集群部署架构.但是安全框架shiro只有单机存储的SessionDao,尽管Shrio ...