做这些内核崩溃错误是什么意思? [英] what do these kernel panic errors mean?

查看:5832
本文介绍了做这些内核崩溃错误是什么意思?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

insmod的在ARM平台上的内核模块,我得到一个内核恐慌导致这三个错误被打印到屏幕


  1. 未处理的错误:对非linefetch外部中止(量0x008)

  2. 未处理的故障:IM precise外部中止(0xc06)

  3. 内核恐慌 - 不同步:在中断致命异常


    • 什么是那些价值在括号?

    • 这是什么 3 意味着这听起来像调度,而原子,但有
      一个内核模块中没有这样的事?



解决方案

在括号内的值是 IFSR 指示故障状态)注册。没有关于中止的原因很多这些给出具体原因。还有在内核中的某些表用于处理特定的故障原因和其他有处理它做了的printk 并中止任务或能恐慌()内核。参见:<一href=\"https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/tree/arch/arm/mm/fault.c\">arm/mm/fault.c.该值可能是不值钱的,除非你正在开发一个错误处理程序。虽然它可以给的故障是关于什么的想法,最好是刚拿到 PC ,并期待在code。在该地址(我认为这是已经打印?)。

这些故障可能发生在任何地方;在用户任务,内核任务或中断处理程序等。由于你的中断处理程序崩溃,Linux的决定停止一切不打扰程序。否则,你可能会破坏磁盘(甚至更多)等。

请注意:每个的故障状态寄存器具有的 abort.S 的文件,该文件是为特定的ARM CPU不同。例如参见<一个href=\"https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/tree/arch/arm/mm/abort-ev7.S\">abort-ev7.S v7_early_abort 。这是把在<一href=\"https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/tree/arch/arm/mm/proc-v7.S\">processor它在系统启动时匹配表。


  1. 未处理的故障的 - 试图读取未映射(通过MMU)内存

  2. 内核恐慌的 - 一个的未处理的故障的发生在code视为不可恢复

I insmod a kernel module on ARM platform and I get a kernel panic which causes this three errors to be printed to screen

  1. Unhandled fault: external abort on non-linefetch (0x008)
  2. Unhandled fault: imprecise external abort (0xc06)
  3. Kernel panic - not syncing: Fatal exception in interrupt

    • What are those values in parenthesis ?
    • What does 3 mean It sounds like scheduling while atomic but there is no such thing in a kernel module.?

解决方案

The values in parenthesis are the ifsr (instruction fault status) register. There are many causes for aborts and these give a specific cause. There are some tables in the kernel that handle particular fault causes and other have a handler which does a printk and aborts a task or can panic() the kernel. See: arm/mm/fault.c. The value is probably not valuable unless you are developing a fault handler. Although it can give an idea of what the fault is about, it is better just to get the PC and look at the code at that address (which I think was already printed?).

These faults can occur anywhere; in a user task, a kernel task or an interrupt handler, etc. Since your interrupt handler has crashed, Linux decides to stop everything and not bother proceeding. Otherwise, you could corrupts disks (even more), etc.

Note: Each fault status register has an abort.S file which is different for the particular ARM CPU. For example see abort-ev7.S v7_early_abort. This is put in a processor table which is matched at boot time.

  1. Unhandled fault - trying to read memory that is not mapped (via MMU).
  2. Kernel panic - an unhandled fault occurred in code deemed un-recoverable.

这篇关于做这些内核崩溃错误是什么意思?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆