Если процесс прерывается аппаратным прерыванием (обработчик прерываний первого уровня), то узнает ли об этом планировщик ЦП (например, считает ли Планировщик время выполнения для аппаратных прерываний отдельно от прерванного процесса)?
Подробнее:
Я пытаюсь устранить проблему, когда загрузка ЦП в htop слишком низкая для указанной задачи шифрования пакетов (ЦП находится на уровне <10% при шифровании пакетов на скорости 400 Мбит / с; скорость необработанного шифрования составляет всего 1,6 Гбит / с, поэтому шифрование пакетов не должно идти быстрее, чем сырая скорость шифрования). </p>
Пояснение:
Моя гипотеза состоит в том, что инкапсуляция пакетов происходит при аппаратных прерываниях, что дает мне иллюзию низкой загрузки процессора в 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 использует этот файл proc для получения статистики). Мне интересно, если это будет ошибка в Linux или драйвер. Когда я делал эти снимки / proc / stat, трафик шел со скоростью 500 Мбит / с и 500 Мбит / с.