多核编程中的中断处理问题(先送100分,根据解决情况再加分)
最近遇到了一个比较特殊的SMP中断问题。
一般情况下,多核CPU收到一个外部中断,APIC会把它派发到指定的CORE,由该CORE进行处理。但是现在我需要处理的情况是,让所有的CPU CORE都对某个特殊的外部中断进行即时的响应,所有的CORE都要对同样的一个中断处理一遍(处理的代码可能不一样,但是都需要调用对应的中断处理函数)。在Linux内核中,有没有办法对做到这一点?如果可以做到,应该如何做呢?顺便说一下,该中断是NMI,要求在中断产生之后所有CORE在很短的时间内(小于10ms)迅速处理。
我曾经想过当CORE 0收到了中断,在ISR中通过IPI向其他CORE发送中断,但是这样处理的话,时延比较大,其他CORE不能在要求的间隔之内进行处理。
先送100分出来,如果有很好的解决办法,再加分!
一般情况下,多核CPU收到一个外部中断,APIC会把它派发到指定的CORE,由该CORE进行处理。但是现在我需要处理的情况是,让所有的CPU CORE都对某个特殊的外部中断进行即时的响应,所有的CORE都要对同样的一个中断处理一遍(处理的代码可能不一样,但是都需要调用对应的中断处理函数)。在Linux内核中,有没有办法对做到这一点?如果可以做到,应该如何做呢?顺便说一下,该中断是NMI,要求在中断产生之后所有CORE在很短的时间内(小于10ms)迅速处理。
我曾经想过当CORE 0收到了中断,在ISR中通过IPI向其他CORE发送中断,但是这样处理的话,时延比较大,其他CORE不能在要求的间隔之内进行处理。
先送100分出来,如果有很好的解决办法,再加分!
...全文
相关推荐
c语言程序100列(学会用c语言解决生活中的问题)
此学习中把要解决的实际问题通过程序化语句表达出来,对思维的培养起了很大作用。
visual c++让多核CPU占用率达到100%
visual c++让多核CPU占用率达到100%
如何解决msvcr100.dll丢失问题
解决方法一: 下载MSVCR100.dll,然后放到系统中,注意存放的系统路径: 1、32位系统,dll放在:\Windows\System32
vue中设置height:100%无效的问题及解决方法
主要介绍了vue中设置height 100%无效的问题及解决方法,需要的朋友可以参考下
编程语言入门经典100例 Python版
ZH奶酪:编程语言入门经典100例 Python版 本资料共包含以下附件: ZH奶酪:编程语言入门经典100例【Python版.pdf


