IA-32上自我IPI的目的

jmi*_*ler 5 x86 interrupt

处理器在IA-32架构上向其自身发送处理器中断的目的是什么?

根据英特尔IA-32架构软件开发人员手册,Vol.3,Ch.10.1:

IPI用于软件自中断,中断转发或抢占式调度.

但是,当处理器也可以通过INT指令中断自身时,为什么要使用自我IPI?这个功能似乎是多余的.

Chr*_*ins 3

我认为最大的原因是一致性:如果您正在为多核处理器编写软件,并且想要向系统中的所有内核发送中断,那么必须对每个其他内核执行 IPI,然后执行,这会很糟糕INT 来中断当前的核心,当然,您还必须为两个中断源设置处理程序等......将 IPI 发送给每个人要容易得多。

另一种情况可能是多核系统,您将工作或消息传递给“空闲”核心来处理负载。“自由”核心可能是当前核心,同样,您不希望仅仅因为向自己发送中断而在软件中出现特殊情况。