![](https://img-blog.csdnimg.cn/20190918140145169.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
09-kernel exception
文章平均质量分 79
linux kernel exception debug
frank_zyp
一切皆有可能
展开
-
[Kernel_exception1] kernel exception的总结
一、概述: kernel exception的种类有很多,主要表现为kernel panic,一旦linux kernel发生panic,机器会出现重启,会产生很差的体验,但导致kernel panic的原因有很多,软件和硬件问题都会导致panic,出现panic时需要通过gdb/trace32工具对产生的DB文件根据具体的代码进行分析定位问题,下面会介绍各种kernel except...原创 2018-09-19 12:17:02 · 1446 阅读 · 0 评论 -
[Kernel_exception2] data abort Unable to handle kernel paging request
一、概序: data abort 类型的KE比较常见,触发此KE的原因是,用户空间使用的地址都是虚拟地址,此地址经过MMU的负复杂的页表映射到物理地址,当其中发生一些异常导致此虚拟地址无法访问到对应的物理地址时,就会通过报对应的BUG使系统重启,此地址有可能已经被其他进程访问,也有可能因为部分硬件问题导致对应的地址出现翻转导致无法访问。二、案例:(1)硬件bitflip的...原创 2018-09-20 11:23:14 · 1510 阅读 · 0 评论 -
[Kernel_exception3] linux kernel out of memory panic(OOM)
一、out of memory 介绍: Linux kernel out_of_memory(简称OOM)从字面上看可以就可以看出是因为没有内存可供分配导致,OOM的产生和内存分配相关,分析此类问题需要对linux kernel的内存管理非常了解才好定位问题。产生OOM的原因大部分是因为内存的泄漏导致,但也不排除部分小内存的设备(512M或者更低)在使用大量耗内存的应用时,设备的内...原创 2018-11-06 15:43:36 · 2727 阅读 · 1 评论 -
[Kernel_exception4] mtk HWT debug
一、原理: MTK平台有纯软件上的看门狗机制hang_detect,hang_detect机制是负责监控应用层重要服务(如system_server等),当然硬件上也有看门狗机制WDT,防止CPU一直卡住不去执行其他的工作,导致CPU不再进行调度的原因很多:长时间关闭中断。这个直接无法调度了,还可以细分为: 关中断的CPU死锁 关中断后陷入循环 中断频繁触发。则导致CPU...原创 2019-01-18 15:18:11 · 1936 阅读 · 1 评论 -
[Kernel_exception5] undefined instruction
一、原理介绍: 操作系统内部会对中断、异常等进行处理,其中有一类异常是未定义指令异常undefined instruction,意思是CPU执行到一个未知的指令,CPU下一步不知该如何处理, 此时会触发kernel panic重启,重启时会产生mrdump,将问题时的栈信息和相关的寄存器信息保存下来提供分析。 产生undefined instruction情况有如下几种: ...原创 2019-03-12 17:34:17 · 4168 阅读 · 0 评论 -
[Kernel_exception6] MTK hang_detect
一、hang_detect介绍: MTK平台存在一个hang_detect的机制,用于检查应用层和驱动是否有卡住,应用层的system_server进程会30s喂狗,也就是对kernel driver中的watchdog节点进行kick的操作,当kernel 里面的watchdog线程卡住时,或者应用层发生SWT时不能及时喂狗,都会出现hang_detect的问题,出现问题时会有一定...原创 2019-04-02 19:56:09 · 2621 阅读 · 0 评论 -
[Kernel_exception6] BUG: scheduling while atomic
一、实际问题:1、开机出现原子上下文调度的bug:[ 6.290494] <1>.(1)[285:init]BUG: scheduling while atomic: init/285/0x00000000[ 6.290528] <1>-(1)[285:init][<c010e61c>] (dump_backtrace) from [&l...原创 2019-08-23 14:36:35 · 1262 阅读 · 0 评论 -
linux crash debug kernel exception
一、crash介绍: ramdump是分析kernel crash的资料,利用工具想gdb debug coredump一样直接debug ramdump。该工具在gdb上开发,使它可以支持kernel,因此使用方法和gdb一样,只不过增加了支持kernel的一些命令。crash官方网站:http://people.redhat.com/anderson/如何编译crash,然后用它...原创 2019-08-28 20:46:33 · 1955 阅读 · 2 评论