禁用超线程处理器上的中断

时间:2017-10-04 08:23:04

标签: linux-kernel x86 interrupt hyperthreading isr

假设我有一个超线程处理器,操作系统将它们视为两个不同的虚拟处理器vp1和vp2。现在在vp1上的LWP1中,我禁用了硬件中断中断。是不是说除非启用,否则两个虚拟处理器都不会得到任何中断?如果这是真的,它还应该意味着在另一个处理器vp2上通过另一个LWP2启用中断也将启用vp1上的中断?我假设从内核禁用中断,只在本地处理器上禁用它。

请解释一下这是如何运作的。

1 个答案:

答案 0 :(得分:1)

超线程处理器的两个逻辑核心都有自己的APIC ID,因此就中断而言,它们是独立的CPU。 (在Knight's Landing / Xeon Phi,四个逻辑核心)

这使得可以在内核模式下使用cli / sti独立于其他任何逻辑内核禁用中断。一切都与非SMT多核系统完全相同,因为这就是超线程的设计方式。

其他任何东西都不方便和奇怪,并且通过有时禁用它正在等待的中断来增加其他逻辑核心的延迟,所以很明显这是英特尔设计它的理智方式。

相关问题