多核编程中的中断处理问题(先送100分,根据解决情况再加分)
编码人V1 2009-03-09 01:06:36 最近遇到了一个比较特殊的SMP中断问题。
一般情况下,多核CPU收到一个外部中断,APIC会把它派发到指定的CORE,由该CORE进行处理。但是现在我需要处理的情况是,让所有的CPU CORE都对某个特殊的外部中断进行即时的响应,所有的CORE都要对同样的一个中断处理一遍(处理的代码可能不一样,但是都需要调用对应的中断处理函数)。在Linux内核中,有没有办法对做到这一点?如果可以做到,应该如何做呢?顺便说一下,该中断是NMI,要求在中断产生之后所有CORE在很短的时间内(小于10ms)迅速处理。
我曾经想过当CORE 0收到了中断,在ISR中通过IPI向其他CORE发送中断,但是这样处理的话,时延比较大,其他CORE不能在要求的间隔之内进行处理。
先送100分出来,如果有很好的解决办法,再加分!