2012-03-21 52 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

相關問題