Если процесс прерывается аппаратным прерыванием (обработчик прерываний первого уровня), тогда планировщик ЦП становится осведомленным об этом (например, планирует ли время выполнения Планировщик для аппаратного обеспечения прерывания отдельно от прерванного процесса)?Является ли планировщик Linux осведомленным об аппаратных прерываниях (Scheduler Jitter)
Подробнее: Я пытаюсь устранить проблему, когда загрузка процессора в Htop является слишком низким для выполнения этой задачи определены шифрования пакетов (ЦП на < 10%, тогда как шифрование пакетов на 400Мб; Raw скорость шифрования только 1.6Gbps , поэтому шифрование пакетов не должно происходить быстрее, чем скорость необработанного шифрования).
Пояснение: Моя гипотеза заключается в том, что инкапсуляция пакетов происходит при аппаратных прерываниях, что дает мне иллюзию низкого использования ЦП в htop. Обычно FLIH реализуются так, что они как можно быстрее завершают свою задачу и откладывают свою работу на SLIH (обработчик прерываний второго уровня, который, как я полагаю, выполняется от имени ksoftirqd/X). Но что произойдет, если FLIH прерывает процесс в течение очень долгого времени? Означает ли это какой-то джиттер ОС?
Я использую Ubuntu 10.04.1 на платформе x86-64.
Дополнительная информация отладки:
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 использует этот ргос файл для получения статистики). Мне интересно, закончится ли это как ошибка в Linux или драйвере. Когда я взял эти/proc/stat снимки, трафик шел со скоростью 500 Мбит/с и 500 Мбит/с.
Это вопрос программирования? Я не могу сказать? – Gabe
N.B. 'while [1];' проще писать как 'while:;' – user562374
Bur harder read – hirschhornsalz