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 更多请查看专栏,地 ...
随机推荐
- a标签的一些特殊使用
<a href="tel:10086">10086</a> //点击后直接拨打10086 <a href="mailto:c1586@qq ...
- 2019-2020-1 20199324《Linux内核原理与分析》第九周作业
第八章 进程的切换和系统的一般执行过程 1.进程调度的时机 硬中断和软中断 中断:在本质上都是软件或者硬件发生了某种情形而通知处理器的行为,处理器进而停止正在运行的指令流(当前进程),对这些通知做出相 ...
- 吴裕雄--天生自然 pythonTensorFlow图形数据处理:windows操作系统删除tensorflow
输入:pip uninstall tensorflow Proceed(y/n):y
- 获取cell上按钮事件
原由:点击cell上的按钮,无法获取button对应的cell位置 //获取按钮上层控件,也就是cell本身 AccountCell *cell= (AccountCell *)[按钮名称 super ...
- mybatis学习笔记四
记录下动态sql的常用标签: 1.where 一般用作数据操作添加的条件 例子: <select id="selectByRoleId" resultMap="re ...
- Caffe Ubuntu14.04 + CUDA 8 (支持GTX1080 1070等Pascal架构显卡)
1. 前言 本教程使用的系统是Ubuntu 14.04 LTS 64-bit,使用的CUDA版本为8. 理论上本教程支持Pascal架构显卡,如游戏卡GeForce GTX1070,GTX 1080, ...
- [APIO2016]Gap(交互)
第一个subtask应该还是很送分的,就是每次询问两端值的大小,(N+1)/2次即可. 考虑第二个subtask,首先还是先把最小值和最大值询问出来,然后发现不需要询问每一个数,直接将[l+1,r-1 ...
- [GX/GZOI2019]特技飞行(扫描线+置换)
感觉是6题中最难的一题,其实这题是一个二合一: 第一问:给定平面上若干点和k个关键点,关键点覆盖一个45°倾斜的正方形范围r,求有多少点被至少一个关键点覆盖.这个可以曼哈顿转切比雪夫距离,然后再扫描线 ...
- svn http
yum install -y httpd subversion mod_dav_svn mkdir -p /var/lib/svn cd /var/lib/svn svnadmin create de ...
- PAT甲级——1027 Colors in Mars
1027 Colors in Mars People in Mars represent the colors in their computers in a similar way as the E ...