我遇到了内核恐慌,这是由于3级转换返回了无效的描述符并引发了指令/预取中止异常而导致的。在出现故障点之前,EL0中有多个成功处理的预取中止,但在EL1中引发指令中止时会出现恐慌。
我可以在arch / arm64 / kernel / entry.S中看到,有一个用于EL0情况的处理程序(el0_ia),但是没有用于EL1情况的处理程序。
是否在EL1中永远不会发生指令/预取中止的情况?
您的猜测是正确的-指令/预取中止不应在EL1中发生。
可以为EL0处理预取中止的原因是,用户空间以需求分页的方式运行,并由文件系统存储支持。内核(包括模块,即使它们可能最初是从文件系统加载的)也始终被映射-因此,预取中止意味着某些地方出了问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句