2012-03-21 71 views

回答

2

不要。
如果CPU0上的代码禁用了IRQ,那么它需要禁用它们,因为它正在做一些重要的事情。如果你奇迹般地启用它们,它的数据结构可能会损坏,并且内核会崩溃。
如果您的代码在不合理的时间内保持IRQ禁用,那么它就有问题,需要修复。

+0

谢谢。我专注于关于Linux内核的可靠性,所以如果CPU0的IRQ在不合理的时间内被禁用(例如,一个坏的自旋锁可能导致这种情况),那么在CPU1上执行的进程将启用中断并释放锁,然后恢复问题。 – aves 2012-03-21 17:37:41

+1

它不太可能会成功恢复。更可能的是,它会让一些数据结构损坏,所以当你试图访问它们时会崩溃。但是,如果你真的坚持 - 试着将NMI发送给其他处理器(不要问我如何),让NMI处理程序按照你的意愿去做。 – ugoren 2012-03-21 19:28:51

相关问题