2012-08-31 92 views
1

我在Linux 3.0中編寫了一個系統調用,並且在等待某個事件發生時(使用waitqueue),我想檢查一個掛起的SIGKILL,如果發生,我希望current任務儘快死亡。據我所知,一旦我從系統調用返回(當然,進程進入用戶模式時),內核會檢查未決信號,一旦看到SIGKILL,內核將會終止它返回到用戶模式之前返回到current在Linux內核中處理SIGKILL的最佳方式

問題:我上面的假設是否正確地說明了SIGKILL的工作原理?我的另一個選擇是看到致命的SIGKILL正在等待,而不是從系統調用返回,我只是執行do_exit()。我希望儘可能與其他Linux使用案例保持一致......並且從系統調用簡單返回是其他代碼的作用。我只想確保SIGKILL如何殺死任務的上述假設是正確的。

回答

1

系統調用退出後發生信號檢查,是的。

參見例如ret_from_sys_callarch/x86/kernel/entry_64.S