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笔记_第一篇_面向过程_第一部分_5.Python数据类型之字典类型(dict)
字典!在Python中字典是另一种可变容器模型,可以存储任意类型的对象.是Python存储数据类型的最高级(maybe). 特点:1. 字典的存储方式和其他类型数据略有不同,是通过键(key)和值(v ...
- 杨辉三角(C语言)
杨辉三角 杨辉三角,是二项式系数在三角形中的一种几何排列,中国南宋数学家杨辉1261年所著的<详解九章算法>一书中出现.在欧洲,帕斯卡(1623----1662)在1654年发现这一规律, ...
- SALESORDERINCOME.QVW
//销售订单SALESORDER_BASE_TMP:NoConcatenateLOAD T_SAL_ORDER.LE_ID, [T_SAL_ORDER.LCY CODE], T_SAL_ORDER.S ...
- 吴裕雄--天生自然python Google深度学习框架:Tensorflow实现迁移学习
import glob import os.path import numpy as np import tensorflow as tf from tensorflow.python.platfor ...
- Qt QString 和 LPCWSTR 的相互转换
在windosw 编程中,常用到LPCWSTR 变量,QT中最常用到QString,下面提供QString和LPCWSTR 相互转换的方法 LPWSTR 转换成QString LPCWSTR str; ...
- 计算文本长度-boundingRectWithSize
- (void)viewDidLoad { [super viewDidLoad]; //新建lable控件 UILabel *lable=[[UILabel alloc]init]; labl ...
- 怎么设置tomcat在get请求的中文也不乱码?两种情况下配置
我们都知道,get请求和post请求的一个比较显著区别就是,在使用post请求的时候,中文不会乱码,但是在使用get请求的时候,如果url后面带有中文就会乱码了.那么这个怎么解决呢? 前提:配置项目的 ...
- ZJNU 1138 - 小兔的棋盘——中级
二维图的动态规划因为不能穿越对角线,则选取对角线的一边dp即可选取对角线右下侧则x轴上每个点只能由其左侧的点走过去(只有1条)对角线上的点只能由对角线下方的点走过去其他点可以由左侧和下侧两种方式到达因 ...
- Android 5.0 5.1 webview 闪退问题
自定义webview /** * 处理Android 5.0 5.1 webview 闪退 */ class MyWebView : WebView { companion object{ priva ...
- mysql时区问题解决方案
#url添加参数serverTimezone=UTC 1.jdbc:mysql://127.0.0.1:3306/mymusic?useUnicode=true&characterEncodi ...