【发布时间】:2020-10-23 14:39:00
【问题描述】:
我对 ESR_EL1 的 ARM 文档中的以下条目感到困惑:
EC,位 [31:26] 0b000001 被捕获的 WFI 或 WFE 指令执行。
WFI 或 WFE 被困到底意味着什么?如果在Linux下发生这种情况是什么意思?这会导致内核崩溃吗?
【问题讨论】:
标签: linux linux-kernel arm64 bare-metal
我对 ESR_EL1 的 ARM 文档中的以下条目感到困惑:
EC,位 [31:26] 0b000001 被捕获的 WFI 或 WFE 指令执行。
WFI 或 WFE 被困到底意味着什么?如果在Linux下发生这种情况是什么意思?这会导致内核崩溃吗?
【问题讨论】:
标签: linux linux-kernel arm64 bare-metal
这意味着SCTLR_EL1.nTWI(第 16 位)或SCTLR_EL1.nTWE(第 18 位)被设置为0,并且在 EL0 上运行的某些东西执行了 WFI 或 WFE 指令。
Linux AArch64 用户空间显然被允许执行WFI/WFE 直到this patch,它在内核中安装了一个异常处理程序,可以跳过指令,有效地将它们变成NOPs。
【讨论】: