问题描述
我对ARM文档中ESR_EL1的以下条目感到困惑:
EC,位[31:26] 0b000001被困的WFI或WFE指令执行。
被困WFI或WFE到底意味着什么?如果在Linux下发生这种情况是什么意思?这会导致内核崩溃吗?
解决方法
这意味着SCTLR_EL1.nTWI
(第16位)或SCTLR_EL1.nTWE
(第18位)被设置为0
,并且在EL0上运行的某个程序执行了WFI
或{{1 }}指令。
Linux AArch64用户空间显然被允许执行WFE
/ WFI
直到this patch为止,后者在内核中安装了一个异常处理程序,它将跳过指令,有效地将它们转换为{{1 }}。