ARMv8 AARCH64指令中止处理程序



我遇到了内核恐慌,这是由于 3 级翻译返回无效描述符和引发指令/预取中止异常的结果。在故障点之前,EL0 中有几个成功处理的预取中止,但是当 EL1 中引发指令中止时,会发生死机。

我可以在 arch/arm64/kernel/entry 中看到。S 存在 EL0 案例的处理程序 (el0_ia),但没有 EL1 案例的处理程序。

EL1 中是否不应该发生指令/预取中止?

您的猜测是正确的 - 指令/预取中止不应在 EL1 中发生。

可以为 EL0 处理预取中止的原因是,用户空间以按需分页的方式运行,由文件系统存储提供支持。内核(包括模块,即使它们最初可能是从文件系统加载的)总是映射的 - 因此预取中止意味着出现了可怕的错误。

最新更新