如果進程被硬件中斷(第一級中斷處理程序)中斷,那麼CPU調度程序是否會意識到這一點(例如,調度程序是否計算硬件的執行時間中斷與中斷過程分開)?Linux調度程序是否知道硬件中斷(調度程序抖動)
更多細節: 我試圖解決一個問題,即在HTOP CPU利用率的方式太低指定數據包加密任務(CPU爲< 10%,而在400Mbps的加密數據包;原加密速度只有1.6Gbps ,所以數據包加密不應該比原始加密速度更快)。
說明: 我的假設是數據包封裝發生在硬件中斷,因此給我一個htop的低CPU使用率的錯覺。通常FLIHs被實現,以便他們儘快完成他們的任務,並將他們的工作推遲到SLIHs(我認爲是代表ksoftirqd/X執行的第二級中斷處理程序)。但是如果FLIH很長一段時間中斷一個過程會發生什麼?這是否會引入某種操作系統抖動?
我在x86-64平臺上使用Ubuntu 10.04.1。
額外的調試信息:
while [ 1 ]; do cat /proc/stat | grep "cpu "; sleep 1; done;
cpu 288 1 1677 356408 1145 0 20863 0 0
cpu 288 1 1677 356772 1145 0 20899 0 0
cpu 288 1 1677 357108 1145 0 20968 0 0
cpu 288 1 1677 357392 1145 0 21083 0 0
cpu 288 1 1677 357620 1145 0 21259 0 0
cpu 288 1 1677 357972 1145 0 21310 0 0
cpu 288 1 1677 358289 1145 0 21398 0 0
cpu 288 1 1677 358517 1145 0 21525 0 0
cpu 288 1 1678 358838 1145 0 21652 0 0
cpu 289 1 1678 359141 1145 0 21704 0 0
cpu 289 1 1678 359563 1145 0 21729 0 0
cpu 290 1 1678 359886 1145 0 21758 0 0
cpu 290 1 1678 360296 1145 0 21801 0 0
第七(或第六號列)在這裏我想列是硬件中斷處理程序內花(HTOP使用此proc文件得到統計)的時間。我想知道這是否會最終成爲Linux或驅動程序中的錯誤。當我拍攝這些/ proc/stat快照時,流量是500Mbps和500Mbps。
這是一個編程問題?我不知道? – Gabe 2011-01-21 00:02:50
N.B. `while while [1];`更容易寫成while`;` – user562374 2011-01-21 09:04:05