这些内核恐慌错误是什么意思?
我insmod
是ARM平台上的内核模块,并且遇到内核崩溃,导致这三个错误被打印到屏幕上
Unhandled fault: external abort on non-linefetch (0x008)
Unhandled fault: imprecise external abort (0xc06)
Kernel panic - not syncing: Fatal exception in interrupt
- 括号中的值是什么?
- 是什么
3
意思这听起来像是原子调度,但是内核模块中没有。
回答:
括号中的值是ifsr
(指令故障状态)寄存器。中止的原因有很多,这些原因有特定的原因。内核中有一些表可以处理特定的故障原因,而另一些表则具有处理程序,该处理程序执行a
printk
并中止任务或panic()
执行内核。参见:arm / mm /
fault.c。除非您正在开发故障处理程序,否则该值可能没有价值。尽管它可以使您了解故障的根源,但最好还是PC
在该地址查看代码(我认为它已经打印出来了?)。
这些故障可能发生在任何地方。在用户任务,内核任务或interrupt
处理程序等中。由于interrupt
处理程序崩溃,Linux决定停止所有操作,而无需进行任何操作。否则,您可能会损坏磁盘(甚至更多),等等。
注意:每个
故障状态寄存器
都有一个 abort.S 文件,该文件对于特定的ARM CPU是不同的。例如,请参见abort-
ev7.S
v7_early_abort
。将其放入在启动时匹配的处理器表中。
- 未处理的故障 -尝试读取未映射的内存(通过MMU)。
- 内核崩溃 - 认为无法恢复的代码发生 未处理的错误 。
以上是 这些内核恐慌错误是什么意思? 的全部内容, 来源链接: utcz.com/qa/430232.html