【问题标题】:AArch64 ESR Trapped WFI or WFE instruction executionAArch64 ESR 捕获的 WFI 或 WFE 指令执行
【发布时间】:2020-10-23 14:39:00
【问题描述】:

我对 ESR_EL1 的 ARM 文档中的以下条目感到困惑:

EC,位 [31:26] 0b000001 被捕获的 WFI 或 WFE 指令执行。

WFI 或 WFE 被困到底意味着什么?如果在Linux下发生这种情况是什么意思?这会导致内核崩溃吗?

【问题讨论】:

    标签: linux linux-kernel arm64 bare-metal


    【解决方案1】:

    这意味着SCTLR_EL1.nTWI(第 16 位)或SCTLR_EL1.nTWE(第 18 位)被设置为0,并且在 EL0 上运行的某些东西执行了 WFIWFE 指令。

    Linux AArch64 用户空间显然被允许执行WFI/WFE 直到this patch,它在内核中安装了一个异常处理程序,可以跳过指令,有效地将它们变成NOPs。

    【讨论】:

      猜你喜欢
      • 2015-01-27
      • 1970-01-01
      • 2013-09-20
      • 1970-01-01
      • 2016-07-22
      • 1970-01-01
      • 2016-05-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多