ARM-yield指令如何通知其他线程它们可以启动,它与WFE相比如何?

ARM-yield指令如何通知其他线程它们可以启动,它与WFE相比如何?,arm,armv8,Arm,Armv8,在学习WFE的过程中,我在手册B1.3.3节“产量说明”中看到了产量说明 该节说: YIELD指令提示线程执行的任务重要性较低,因此它可能会让步,请参见第C6-1253页的YIELD 但我有点困惑,因为我认为要对另一个线程进行优先级排序,我需要通知Linux内核让调度程序对另一个线程进行优先级排序 那么,如果有的话,收益率是如何与内核对话的呢?我原以为像sched_yield这样的系统调用就是解决这个问题的方法 它与WFE相比又如何?WFE说,它可以进入低功耗模式,如果我们想生产,这不是更有意义

在学习WFE的过程中,我在手册B1.3.3节“产量说明”中看到了产量说明

该节说:

YIELD指令提示线程执行的任务重要性较低,因此它可能会让步,请参见第C6-1253页的YIELD

但我有点困惑,因为我认为要对另一个线程进行优先级排序,我需要通知Linux内核让调度程序对另一个线程进行优先级排序

那么,如果有的话,收益率是如何与内核对话的呢?我原以为像
sched_yield
这样的系统调用就是解决这个问题的方法

它与WFE相比又如何?WFE说,它可以进入低功耗模式,如果我们想生产,这不是更有意义吗

F1.8.1“产量指令”还指出,实施可包括:

在多处理器(MP)系统中,修改snoop总线的仲裁优先级也可能有类似的用途


因此,可能YIELD与WFE类似,并暗示了这种微结构优化,但不可能将CPU置于低功耗状态,这需要SEV将其唤醒。

本文中的线程是指SMT的硬件线程。对于这项技术,您可能更熟悉英特尔品牌术语“超线程”。使用这种技术,一个内核可以同时执行多个硬件线程

这与操作系统线程相关,但与操作系统线程不同。调度器负责将操作系统线程映射到硬件线程


有关更多详细信息,请参阅此维基百科页面:

老实说,这也让我感到好奇。我得到了WFE/WFI类型的命令,以及它们如何帮助自旋锁和电源,但产量部分不太清楚。