1
在Linux內核中,有許多函數,例如on_each_cpu_mask,它們有文檔警告,不會傳入長時間運行的回調,因爲在回調期間中斷和/或搶佔將被禁用。目前還不清楚回調「必須」是否很短,因爲它太長會導致糟糕的系統性能,或者長時間運行的回調實際上會以某種方式破壞系統的正確性。長期禁用中斷/搶佔有什麼後果?
顯然,當中斷和搶佔被禁用時,繁忙核心無法做任何其他工作,並且可以通過讓兩個CPU相互等待來調整可能導致死鎖的情況。但爲了爭論,回調只是做了一大堆純粹的計算,花費了大量的時間然後返回。這可以以某種方式破壞內核嗎?如果那麼多久太久了?或者在計算完成之前性能會受損?